autodl文件存储,文件同步,conda环境同步问题
又转战autodl了,兄弟们,之前用的featurize,pytorch太老了,跟不上我用的AI的节奏
这个代码一天也跑不完,所以就要考虑到同步的问题,
首先是已经上传的文件的同步
autodl 的官方文档上是这么说明的:
但是左边我们可以看到根本没有这个root也没有这个同步位置 autodl-fs
fs 是后面才有的,此时你那应该没有
所以这下首先是如何处理我们的文件移动到存储盘里,首先我们要先明确这个/其实就是root
可以在最开始的位置:/ 来用ls看一有什么东西
由此我们可以推断出/就是root
但是这个autodl-fs是私人同步盘,所以我们看不到,而那个autodl-pub是公共的,可以用但是不可以改,所以没必要隐藏。
我说左边文件管理器没有这个autodl-fs,操作起来很不方便,于是,AI给我建了个软连接。
ln -s /autodl-fs/data ~/fs
下面是原因和具体回答,可以跳过
命令行里看得到 /autodl-fs
,但左侧 JupyterLab 文件管理器树形目录里根本没有“autodl-fs”这一栏。
这是 AutoDL 镜像的一个小坑——Jupyter 只把系统盘(/root)当成根目录启动,挂载盘没自动挂到文件树里。
两步解决,30 秒搞定:
- 给
/autodl-fs
做一个软链接,放到/root
下(Jupyter 就能看见了)
ln -s /autodl-fs/data ~/fs
- 回到左侧文件管理器
→ 刷新一下页面(或点顶部刷新图标)
→ 在/root
里会出现一个名叫 fs 的文件夹图标(带小箭头)
→ 点开它就是/autodl-fs
的内容,可读可写,以后关机再开依旧存在。
一句话:
用软链接把挂载盘“塞进”Jupyter 能看到的目录里,以后就跟普通文件夹一样用。
然后就多了个fs,点开就能直接看里面有啥了。
接下来就是复制的命令,其实你用手拖动也是可以的
cp -r ~/Adversarial_Content_Attack-main /autodl-fs/data/
移动完后可以用下面指令检查一下
ls /autodl-fs
结果就是
夸了一下AI
下面是conda 环境同步:
AutoDL 的conda环境同步到文件存储
如果你没有创建环境,是如下的操作
# 1. 指定路径新建环境,名字随意
conda create -p /autodl-fs/data/envs/diffusion python=3.10# 2. 以后激活就这么写(绝对路径)
conda activate /autodl-fs/envs/diffusion# 3. 照常装依赖
pip install torch torchvision diffusers opencv-python ...
下面是完整的对话,可以不想看可以略过
可以,但不能把 conda 环境直接“同步”到文件存储,而是把环境创建在 /autodl-fs
里,这样:
- 同一地区任意实例都能挂载这块盘,直接激活即用;
- 关机、换卡、升配、保存镜像都不会丢;
- 免去重复装包、导来导去的麻烦。
下面给出“一次性建好,终身复用”的完整做法(官方同样推荐)。
一、把 conda 环境装到文件存储
# 1. 指定路径新建环境,名字随意
conda create -p /autodl-fs/data/envs/diffusion python=3.10# 2. 以后激活就这么写(绝对路径)
conda activate /autodl-fs/data/envs/diffusion# 3. 照常装依赖
pip install torch torchvision diffusers opencv-python ...
二、让 Jupyter / PyCharm 也能识别
- Jupyter
# 给刚才的环境注册 kernel
conda install -p /autodl-fs/envs/diffusion ipykernel
/autodl-fs/envs/diffusion/bin/python -m ipykernel install --name diffusion --display-name "Python(diffusion)"
刷新 JupyterLab → 右上角 Kernel → 就能选 “Python(diffusion)”。
- PyCharm(Professional)
Settings → Python Interpreter → SSH → 选 Existing environment
Interpreter path 填/autodl-fs/envs/diffusion/bin/python
映射路径把本地工程同步到/autodl-fs/YourProject
即可。
三、换实例后怎么继续用
新机开机后:
conda activate /autodl-fs/envs/diffusion # 环境还在
cd /autodl-fs/YourProject # 代码也在
python xxx.py # 直接跑
四、常见疑问
-
性能会不会掉?
环境本身在 NFS 上,import 稍慢;训练时把数据拷到本地高速盘/root/autodl-tmp
即可。 -
想打包迁移到别的平台?
conda-pack
把整个/autodl-fs/envs/diffusion
打成 tar,下载后别处解压一样用。 -
空间计费?
/autodl-fs
20 GB 以下免费,超出 0.01 元/GB/日。
一句话总结
把 conda 环境直接建到 /autodl-fs
,就能实现“一次配置,多实例共享,关机不丢”,官方文档同样推荐这种做法。
因为我已经创建了,所以我想移动一下
能不能把我现在这个环境的位置移动到/autodl-fs/envs/里
你得把这个envs文件夹在autodl-fs下给创建一下
首先找到当前环境的位置路径
echo $CONDA_PREFIX
然后
可以,而且不需要重新下载任何包,只要把当前环境完整复制到 /autodl-fs/envs/
再重新注册即可,3 步搞定:
- 退出当前环境并复制
conda deactivate # 先退出
cp -a $CONDA_PREFIX /autodl-fs/data/envs/ # 完整拷贝
$CONDA_PREFIX
就是你现在环境的路径,形如 /root/miniconda3/envs/test
。 就是把你上一步那个环境的位置替换一下
-a
保留软链接、权限,速度最快。
- 让 conda 认识新位置
conda config --add envs_dirs /autodl-fs/data/envs # 把新目录加入检索列表
- 以后激活就用
conda activate /autodl-fs/data/envs/diffusion # 绝对路径激活
或者
conda activate diffusion # 名字也能识别
验证
which python
# 应该输出 /autodl-fs/envs/diffusion/bin/python
python -c "import torch, cv2, diffusers; print('ok')"
可选清理
rm -rf /root/miniconda3/envs/test # 旧环境确认无用后删掉
一句话
直接 cp -a
把整个文件夹搬到 /autodl-fs/envs/
,再 conda config --add envs_dirs
即可,包、版本、pip 状态完全一致,关机再开仍然在线。