Colab的常用小技巧

Colab的常用小技巧

(不定时更新)

如何在colab上挂载谷歌云盘

因为Colab会自动还原你使用的服务器,所以每次使用都要上传自己使用的数据或文件很麻烦。将常用的文件放在谷歌云盘上,然后每次使用Colab时,先将谷歌云盘挂载到指定目录就解决了上述问题。

from google.colab import drive
drive.mount('/content/gdrive')

如何在colab上切换当前目录

# 使用!cd并不起作用,需要使用 %cd
%cd

如何在colab上使用Kaggle API向Kaggle提交答案

下面展示如何直接在colab上使用Kaggle API向Kaggle提交答案。这里只是给出一个例子,因为dogs-vs-cats这个比赛已经关闭提交了。

# 要使用Kaggle的API需要先在My profile页面创建一个密钥。
# 我的密钥已经创建好并保存在了谷歌云盘里,所以我需要首先挂载云盘
from google.colab import drive
drive.mount('/content/gdrive')

# 创建一个服务器中的文件夹,并将云盘中的密钥复制到该文件夹中
! mkdir -p ~/.kaggle/
! cp /content/gdrive/My\ Drive/data/kaggle.json ~/.kaggle/

# 使用kaggle API下载测试数据集
!kaggle competitions download -c dogs-vs-cats -f test1.zip

!mkdir /tmp/test
local_zip = '/content/test1.zip'
zip_ref   = zipfile.ZipFile(local_zip, 'r')
zip_ref.extractall('/tmp/test/')
zip_ref.close()

# 预处理
TEST_DIR = "/tmp/test/"
test_datagen = ImageDataGenerator(rescale=1.0/255.)
test_generator = test_datagen.flow_from_directory(TEST_DIR,
                                                  batch_size=100,
                                                  class_mode=None,
                                                  target_size=(150, 150))
# 预测得到结果
test_generator.reset()
pred=model.predict_generator(test_generator,verbose=1)

# 创建一个dataframe
import pandas as pd
test_filenames = os.listdir("/tmp/test/test1")
test_df = pd.DataFrame({
    'filename': test_filenames
})

# 将预测得到的概率转化为类别标签
threshold = 0.5
test_df['probability'] = pred
test_df['category'] = np.where(test_df['probability'] > threshold, 1,0)

# 将dataframe转化为提交答案要求的格式,然后生成csv文件
# dogs-vs-cats这个比赛要求的格式为一列id和一列label
submission_df = test_df.copy()
submission_df['id'] = submission_df['filename'].str.split('.').str[0]
submission_df['label'] = submission_df['category']
submission_df.drop(['probability', 'filename', 'category'], axis=1, inplace=True)
submission_df.to_csv('submission.csv', index=False)

# 使用kaggle API提交答案
! kaggle competitions submit dogs-vs-cats -f {'/content/submission.csv'} -m "My submission"

猜你喜欢

转载自blog.csdn.net/JSerenity/article/details/89713458
今日推荐