当前位置: 首页 > news >正文

Colab使用_文件操作

Colab 本质上是一个运行在 Linux 环境中的云端计算平台。具体特点包括:

  • 操作系统:Colab 运行在 Ubuntu(或类似 Linux 发行版)上,因此支持 Linux 命令(如 ls、mkdir、chmod 等)。
  • 文件系统:Colab 提供了一个临时的文件系统(/content/ 目录是默认工作目录),你可以克隆存储库、下载文件、创建文件夹等。
  • 预装工具:Colab 预装了 Python(通常是某个版本,如 3.7 或 3.10)、pip、Jupyter Notebook 等,允许用户进一步定制环境。
  • 临时性:Colab 的环境是临时的,断开连接后,文件和配置可能会丢失(除非保存到 Google Drive 或其他持久存储)
1. Colab 文件的存储位置

Google Colab 是一个云端环境,运行在 Google 的服务器上,而不是你的本地计算机。因此,你在 Colab 上新建的文件(如 PPO1.ipynb)默认存储在 Colab 的临时文件系统中,而不是直接存储在你的本地计算机上。

  • 具体位置
    • Colab 提供了一个临时的 Linux 文件系统,默认工作目录是 /content/。
    • 新建的 Jupyter Notebook 文件(如 PPO1.ipynb)通常存储在 /content/ 目录下。
    • 你可以通过以下命令在 Colab 中确认文件位置:
!pwd  # 输出当前工作目录,通常是 /content
!ls   # 列出当前目录下的文件,应该能看到 PPO1.ipynb
2. 文件如何存储到本地计算机?

虽然 Colab 的文件默认存储在云端,但你可以通过以下方式将文件保存到本地计算机:

  • 手动下载到本地
    • 在 Colab 界面上,点击左侧的文件浏览器(文件夹图标)。
    • 找到 PPO1.ipynb,右键选择“下载”。
    • 文件会下载到你的计算机的默认下载目录(通常是 ~/Downloads/ 或你浏览器设置的下载路径)。
      • Windows 示例:C:\Users\YourUsername\Downloads\PPO1.ipynb
      • Mac 示例:/Users/YourUsername/Downloads/PPO1.ipynb
      • Linux 示例:/home/YourUsername/Downloads/PPO1.ipynb
  • 自动保存到 Google Drive
    • Colab 提供了与 Google Drive 集成的功能,可以将文件保存到 Google Drive,然后再从 Google Drive 下载到本地。
    • 操作步骤:
    • 1.挂载 Google Drive:

from google.colab import drive
drive.mount('/content/drive')
  • 运行后会提示你授权,完成后 Google Drive 会挂载到 /content/drive/My Driv
  • 2.将文件保存到 Google Drive:
    
    !cp PPO1.ipynb /content/drive/My\ Drive/PPO1.ipynb
  • 3.打开 Google Drive(drive.google.com),找到 PPO1.ipynb,下载到本地。
    • 下载后,文件会出现在你的本地下载目录。
3.自动保存到 Google Drive 的功能:


如果你在 Colab 中点击“文件” > “保存”,Colab 会提示将 Notebook 保存到 Google Drive(通常是 My Drive/Colab Notebooks/ 目录)

你可以在 Google Drive 的 Colab Notebooks 文件夹中找到它:

  • 路径:My Drive/Colab Notebooks/XXX.ipynb。

colab文件管理操作

创建一个文件夹:

!mkdir my_folder

将文件移动到文件夹:

!mv PPO1.ipynb my_folder/PPO1.ipynb

查看文件夹内容:

!ls my_folder

在文件夹中创建新文件:

with open('my_folder/new_file.txt', 'w') as f:f.write('Hello, Colab!')
4.总结

1.Google Drive 集成:你可以通过挂载 Google Drive,将文件和文件夹保存到云端,实现持久化存储

2.多文件支持:你可以在一个 Notebook 中操作多个文件或文件夹,例如:
克隆整个 GitHub 存储库(包含多个文件和文件夹)。
下载并解压 ZIP 文件(如 Huggy 环境),管理多个文件。

3.管理多个文件和文件夹
在 Colab 中操作:
创建一个项目文件夹,管理所有相关文件:

!mkdir my_project
!mv PPO1.ipynb my_project/
!echo "New content" > my_project/notes.txt


压缩文件夹并下载:
 

!zip -r my_project.zip my_project
from google.colab import files
files.download('my_project.zip')
5.实战

1. 环境配置

我们需要克隆 ML-Agents 存储库,配置 Python 环境,安装依赖,并下载 Huggy 环境。

# 克隆 ML-Agents 存储库(可能需要 3 分钟),获取最新代码和示例
!git clone --depth 1 https://github.com/Unity-Technologies/ml-agents# 下载 Miniconda 安装脚本,用于创建独立的 Python 环境
!wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 赋予安装脚本执行权限,以便运行
!chmod +x Miniconda3-latest-Linux-x86_64.sh
# 静默安装 Miniconda 到 /usr/local 目录,-b 表示非交互式,-f 强制覆盖
!./Miniconda3-latest-Linux-x86_64.sh -b -f -p /usr/local# 激活 Miniconda 环境,准备配置 Python
!source /usr/local/bin/activate
# 在 Miniconda 中安装 Python 3.10.12 和 ujson 包,-q 静默,-y 自动确认
!conda install -q -y --prefix /usr/local python=3.10.12 ujson# 设置 PYTHONPATH 环境变量,指向 Miniconda 的 Python 包路径,确保导入正确
import os
os.environ["PYTHONPATH"] = "/usr/local/lib/python3.10/site-packages/"
# 设置 CONDA_PREFIX 环境变量,指定 Conda 环境路径
os.environ["CONDA_PREFIX"] = "/usr/local/envs/myenv"# 检查当前 Python 版本,确认是否正确安装为 3.10.12
!python --version# 切换工作目录到 ml-agents 存储库根目录
%cd ml-agents
# 安装 ml-agents-envs 包,作为可编辑模式 (-e) 便于开发
!pip3 install -e ./ml-agents-envs
# 安装 ml-agents 包,作为可编辑模式 (-e) 便于开发
!pip3 install -e ./ml-agents# 创建 trained-envs-executables 和 linux 子目录,用于存放环境文件
!mkdir -p ./trained-envs-executables/linux
# 从 Hugging Face 下载 Huggy 环境 ZIP 文件,保存到指定路径
!wget "https://github.com/huggingface/Huggy/raw/main/Huggy.zip" -O ./trained-envs-executables/linux/Huggy.zip
# 解压 Huggy.zip 到 linux 目录,-d 指定目标目录
!unzip -d ./trained-envs-executables/linux/ ./trained-envs-executables/linux/Huggy.zip
# 设置 Huggy 文件夹及其内容的读写执行权限,确保可运行
!chmod -R 755 ./trained-envs-executables/linux/Huggy

2. 模型训练

我们将使用 PPO 算法训练 Huggy 环境,并保存模型到指定目录。ML-Agents 提供了 mlagents-learn 命令来启动训练。

  • 创建配置文件: ML-Agents 需要一个 YAML 配置文件来指定 PPO 的超参数。我们创建一个简单的配置文件 ppo_config.yaml。
behaviors:Huggy:trainer_type: ppo  # 指定使用 PPO 算法作为训练器hyperparameters:batch_size: 2048  # 每次训练的批次大小buffer_size: 20480  # 经验回放缓冲区大小learning_rate: 0.0003  # 学习率beta: 0.005  # 熵正则化系数,控制探索epsilon: 0.2  # PPO 的剪切范围lambd: 0.95  # 优势函数的衰减因子num_epoch: 3  # 每个批次训练的 epoch 数learning_rate_schedule: linear  # 学习率调整策略network_settings:normalize: false  # 是否标准化输入hidden_units: 128  # 隐藏层神经元数量num_layers: 2  # 神经网络层数vis_encode_type: simple  # 视觉编码类型reward_signals:extrinsic:gamma: 0.99  # 折扣因子,平衡短期和长期奖励strength: 1.0  # 外部奖励的权重keep_checkpoints: 5  # 保留的检查点数量max_steps: 500000  # 最大训练步数time_horizon: 64  # 每次更新的时间步长summary_freq: 10000  # 记录总结的频率(步数)

运行训练: 使用 mlagents-learn 命令训练模型,指定 Huggy 环境和配置文件。

# 使用 mlagents-learn 启动训练,指定配置文件、环境和运行 ID
!mlagents-learn ./ppo_config.yaml --env=./trained-envs-executables/linux/Huggy/Huggy --run-id=huggy-ppo --force
# --force 强制覆盖已有训练结果,训练数据保存在 ./results/huggy-ppo/

3. 保存训练结果

训练完成后,模型文件(.onnx 格式)和日志会保存在 ./results/huggy-ppo/ 目录。我们将这些文件组织到一个项目文件夹 ml_agents_project 中。

# 创建项目文件夹并移动文件
!mkdir -p ml_agents_project
!mv PPO1.ipynb ml_agents_project/  # 假设 PPO1.ipynb 已存在
!mkdir -p ml_agents_project/trained_envs
!mv trained-envs-executables/linux/Huggy ml_agents_project/trained_envs/
!mkdir -p ml_agents_project/models
!mv results/huggy-ppo ml_agents_project/models/

4.上传到 Google Drive

将整个项目文件夹上传到 Google Drive,实现持久化存储。

# 挂载 Google Drive 到 Colab 文件系统
from google.colab import drive
drive.mount('/content/drive')# 将整个项目目录复制到 Google Drive 的 My Drive 路径
!cp -r ml_agents_project /content/drive/My\ Drive/ml_agents_project

下次会话加载

在新的 Colab 会话中,从 Google Drive 加载项目文件夹,继续使用。

# 挂载 Google Drive 到 Colab 文件系统
from google.colab import drive
drive.mount('/content/drive')# 从 Google Drive 复制项目目录到当前工作目录
!cp -r /content/drive/My\ Drive/ml_agents_project .
# 切换到项目目录
%cd ml_agents_project# 列出目录内容,确认文件加载成功
!ls -l

下载到本地

将整个项目文件夹压缩为 ZIP 文件,并下载到本地计算机。

# 压缩项目文件夹
!zip -r ml_agents_project.zip ml_agents_project# 下载到本地
from google.colab import files
files.download('ml_agents_project.zip')

应用示例

场景:你训练了一个 Huggy 环境的 PPO 模型,想将其分享给团队成员,用于展示或进一步开发。

  • 操作
    1. 按照上述步骤完成训练,保存 ml_agents_project 到 Google Drive。
    2. 团队成员在新 Colab 会话中加载项目:
      !cp -r /content/drive/My\ Drive/ml_agents_project . %cd ml_agents_project

    3. 加载模型并运行推理:
      !mlagents-learn --env=./trained_envs/Huggy/Huggy --run-id=huggy-ppo --resume

    4. 或者将 ml_agents_project.zip 下载到本地,解压后在本地环境运行。
  • 结果
    • 团队成员可以直接使用你的模型和环境,无需重新配置。
    • 本地保存的 ZIP 文件可以作为备份,或用于其他平台(例如本地 Unity 项目)。
    • 保存的目录层级可视化
      在 Google Colab 中,ml_agents_project 文件夹是核心组织单位,包含 Notebook 文件、训练环境和模型文件。以下是保存后的目录结构:
    • ml_agents_project/
      ├── PPO1.ipynb              # 你的 Colab Notebook 文件,记录代码和训练配置
      ├── trained_envs/           # 存放训练环境的子目录
      │   └── Huggy/              # Huggy 环境的可执行文件和相关资源
      │       ├── Huggy          # 可执行环境文件 (Linux 二进制)
      │       ├── Huggy_Data/    # 环境数据文件夹 (可能包含 Unity 资源)
      │       └── ...            # 其他环境相关文件
      ├── models/                 # 存放训练模型和日志的子目录
      │   └── huggy-ppo/          # 训练结果目录,包含模型和检查点
      │       ├── Huggy.onnx      # 训练好的 PPO 模型文件
      │       ├── events.out.tfevents  # TensorBoard 日志文件
      │       ├── checkpoint      # 训练检查点文件
      │       ├── ...             # 其他训练日志或配置文件
      └── (可能包含其他文件)      # 未来可能添加的配置文件或脚本

      上传到 Google Drive 后的结构

      当你运行 !cp -r ml_agents_project /content/drive/My\ Drive/ml_agents_project 时,上述结构会被复制到 Google Drive 的 My Drive/ml_agents_project 路径:

    • Google Drive/
      └── My Drive/└── ml_agents_project/├── PPO1.ipynb├── trained_envs/│   └── Huggy/│       ├── Huggy│       ├── Huggy_Data/│       └── ...├── models/│   └── huggy-ppo/│       ├── Huggy.onnx│       ├── events.out.tfevents│       ├── checkpoint│       └── ...└── (可能包含其他文件)

      压缩和下载后的本地结构

      运行 !zip -r ml_agents_project.zip ml_agents_project 并下载后,解压 ml_agents_project.zip 到本地计算机,将恢复相同的目录结构:

    • 本地计算机/
      └── Downloads/ (或你指定的目录)└── ml_agents_project.zip (解压后)├── PPO1.ipynb├── trained_envs/│   └── Huggy/│       ├── Huggy│       ├── Huggy_Data/│       └── ...├── models/│   └── huggy-ppo/│       ├── Huggy.onnx│       ├── events.out.tfevents│       ├── checkpoint│       └── ...└── (可能包含其他文件)

http://www.xdnf.cn/news/397243.html

相关文章:

  • C++.IP协议通信
  • 【C++进阶】第3课—二叉搜索树
  • C++猴子摘桃 2024年信息素养大赛复赛 C++小学/初中组 算法创意实践挑战赛 真题详细解析
  • [超详细,推荐!!!]前端性能优化策略详解
  • VC++ 获取CPU信息的两种方法
  • POSIX信号量
  • 【软件测试】基于项目驱动的功能测试报告(持续更新)
  • k8s中ingress-nginx介绍
  • Spring Boot 中的重试机制
  • 【Python】Python类型标注革命:Annotated类型深度解析与实战
  • 匈牙利算法
  • 信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十七)
  • java中对象的比较
  • 【文献阅读】地方政府驱动企业参与乡村振兴的机制——乡村振兴注意力视角的分析
  • 【工作记录】crmeb后端项目打开、运行
  • 【Flask开发踩坑实录】pip 安装报错:“No matching distribution found” 的根本原因及解决方案!
  • 1688 开放平台接口对接实战:商品实时数据采集 API 开发全流程
  • cmake:test project
  • OSPF的特殊区域
  • P10225 [COCI 2023/2024 #3] Milano C.le|普及
  • LeetCode 热题 100 543. 二叉树的直径
  • RS485和RS232 通信配置
  • TikTok 运营干货:内容创作与 AI 增效
  • 【高数上册笔记01】:从集合映射到区间函数
  • istio in action之应用弹性与容错机制
  • Babel 插件与预设的区别及使用
  • 每日脚本 5.11 - 进制转换和ascii字符
  • FlySecAgent:——MCP全自动AI Agent的实战利器
  • 运算放大器稳定性分析
  • MyBatis源码解读4(2.3、MyBatis运行流程)