Source: https://bitahub.ustc.edu.cn/help/md/1.2%20%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84%E8%AF%B4%E6%98%8E.html

在算法训练过程中，一个项目会包含以下的文件：数据集、代码、模型、任务的输出。

我们针对以上四种文件类型，进行了隔离存放：



文件夹
具体作用
读写权限




/data/$username/$dataset_name
用于存放名为$dataset_name的数据集
本人所属的私有数据集可写，其他仅可读。公开数据集（即使是本人所公开的）或他人分享的数据集，都不可写


/code
用于存放该项目中用户上传的代码
仅调试环境可写。确切地说，仅调试环境下所做的更改会被保存，执行环境下虽然也可以向这个目录写入，但并不会被持久化保存


/model/$username/$model_name
用于存放名为$model_name的预训练模型
同数据集


/output
用于存放该项目中某个任务的输出文件
可写，但仅限于本次任务可读，你无法跨任务读到其他的/output，也就是说，如果你的输出希望在多个任务间共享，那不要使用这个目录，而是用数据集目录


/myproject_outputs
该项目下所有任务的输出，以任务编号分目录存放
只读。这一目录是为了便利下载。



举例：

比如创建项目"DemoProject"，在创建项目时，选择了数据集"MNIST"，并选择预训练模型"ResNet"（假设这个数据集和模型是用户名为bitahub的用户公开发布的），然后上传了一个"main.py"的代码文件，那么此时：


main.py代码文件，将会放入项目的 /code 目录；

在main.py文件中，如果需要获取MNIST数据集文件，需要使用 /data/bitahub/MNIST/… 的格式；

在main.py文件中，如果需要获取ResNet模型中的文件，需要使用 /model/bitahub/ResNet 的格式；

在main.py文件中，如果想保存模型训练后的参数，请使用 /output/checkpoint.pth 类似的目录。


注意：


每个任务都有独立的/output，这是它与数据集和模型的不同处，也就说同一个项目下，每一个任务看到的 /data和/model在实际存储上是同一份，而/output则不是。

那每个任务看到的/code是同一份吗？这个要分情况讨论：（1）如果启动的是调试任务，则是同一份，是最新的代码；（2）如果启动的是执行任务，那么提交任务时，系统会自动对代码用git工具打上tag，任务看到的是这一时刻tag对应的版本。每一个任务详情页中有代码快照栏目，显示的是对应tag下的代码文件。