和Google Drive通信
第一种办法 调整目录到网盘(已放弃)
放弃的原因主要是,代码和数据在网盘,会造成读取数量限制
# 将环境切换到指定的目录下
import os
path = "/content/drive/MyDrive/data/CTPN/"
os.chdir(path)
os.listdir(path)
第二种办法 将代码和数据都读到本地
代码可以从网盘中读取;数据同理,将数据压缩包转到本地,再解压。
# 直接在colab选择装载硬盘
# cp -r可以复制文件夹,命令是将网盘中的文件夹保存到当前目录下的A_alexnet文件夹
# cp 不加-r,意思是忽略文件夹
!cp -r drive/MyDrive/data/A_alexnet/ A_alexnet
数据可以直接github载入,就没有挂载Google Drive后的io效率问题了,使用wget
可以下载网络上的数据
数据也可以从kaggle读入,见本页的colab读取kaggle数据集
# 切换到tf 1.15
%tensorflow_version 1.15
import tensorflow
print(tensorflow.__version__)
colab读取kaggle数据集
参考文章:https://libertydream.github.io/2019/07/13/在-Google-Colab上玩-Kaggle/
# 安装kaggle包(colab自带)
!pip install kaggle
# 新建一个文件夹,用于存放生成的json
!mkdir .kaggle
# 生成json文件
import json
token = {"username":"lizhendong","key":"d91b071d162f3ff918194c8e57432b6d"}
with open('/content/.kaggle/kaggle.json', 'w') as file:
json.dump(token, file)
# 在root目录下创建文件夹并复制json
!mkdir ~/.kaggle
!cp /content/.kaggle/kaggle.json ~/.kaggle/kaggle.json
# 我也不知这是啥
!chmod 600 /root/.kaggle/kaggle.json
!kaggle config set -n path -v{/content}
# 将需要的比赛的数据文件下载下来。
# 使用网站上的api代码,最后的 -p /content 是为了指明路径
!kaggle competitions download -c dogs-vs-cats-redux-kernels-edition -p /content
之后再解压等等。
# -d 是指定解压目录
!unzip -d A_alexnet/data A_alexnet/data/train.zip
!unzip -d A_alexnet/data A_alexnet/data/test.zip
要命的cd
colab下,!cd
并不管用,必须要使用 %cd
才能*切换目录!
路径问题
pycharm运行和命令行运行有什么区别?
参考文章:https://blog.csdn.net/moshiyaofei/article/details/88941099
- pycharm运行py文件会自动将当前运行py文件的工程目录加载到sys.path中。
- 命令行运行py文件值加载显式import的包和文件,导致在命令行下运行py文件时会提示部分模块找不到。
- 在2中,如果找不到文件出错的话,使用:
import sys
sys.path.append( "工程目录路径" )
将当前工作目录添加到sys.path中就不会报错了。