colab 和kaggle使用
这篇会非常凌乱,主要给自己备份!
1. colab 挂载硬盘
import os
from google.colab import drive
drive.mount('/content/drive', force_remount=True)
指定工作路径:
import os
!mkdir /content/work
os.chdir('/content/work')
查看信息
#查看gpu信息
!/opt/bin/nvidia-smi
#查看内存
!cat /proc/meminfo
!awk '$3=="kB"{if ($2>1024^2){
$2=$2/1024^2;$3="GB";} else if ($2>1024){
$2=$2/1024;$3="MB";}} 1' /proc/meminfo | column -t
#查看cpu信息
!cat /proc/cpuinfo
#查看空间大小
!df -h
kill notebook进程,如切换tensoflow版本
import os
os.kill(os.getpid(), 9)
防止断线:F12–>console输入,单位ms。
function ConnectButton(){
console.log("Connect pushed");
document.querySelector("#connect").click()
}
setInterval(ConnectButton,60000);
!pip install --upgrade --force-reinstall fastai==2.4.1 -qq
!pip install --upgrade --force-reinstall timm==0.4.12 -qq
!pip install --upgrade --force-reinstall torch -qq
使用TPU等必须要挂载gs bucket
- 如果只是TPU训练,要载入预先文件只需要验证就好
from google.colab import auth
auth.authenticate_user()
然后直接认证后就可以使用了
一般如:
import tensorflow as tf
file_exists = tf.gfile.Exists('gs://xx/data/xx.tfrecord')
这样是会返回True的。这有个问题这类路径好像不能像普通文件路径一样用。
read_csv
访问要先安装
!pip install fsspec
!pip install gcsfs
os.path.exists('gs:///data/')#False
with open("gs://xx/data/xx.tfrecord", 'r') as f: f.read() #No such file or directory
另外就是谷歌已经存在gs上的就不要放自己gs桶下,浪费空间。
gs://cloud-tpu-checkpoints/bert/uncased_L-24_H-1024_A-16/vocab.txt
这种就直接用例子。
!python run_classifier.py \
--task_name=bert_move \
--do_train=true \
--do_eval=true \
--data_dir=data \
--vocab_file=gs://cloud-tpu-checkpoints/bert/uncased_L-24_H-1024_A-16/vocab.txt \
--bert_config_file=gs://cloud-tpu-checkpoints/bert/uncased_L-24_H-1024_A-16/bert_config.json \
--init_checkpoint=gs://cloud-tpu-checkpoints/bert/uncased_L-24_H-1024_A-16/bert_model.ckpt \
--max_seq_length=128 \
--train_batch_size=4 \
--learning_rate=2e-5 \
--num_train_epochs=3.0 \
--output_dir=output \
- 然后是用gsutil类似linux命令来copy mv文件:详细在colab使用gs
1.先安装gsutil
!curl https://sdk.cloud.google.com | bash #安装按照自己账户选择1、2这些
!gcloud init
2.再使用ls, cp等
!gsutil ls gs:///data/
====================================
gs://xx/data/
gs://xx/data/xx.tfrecord
!gsutil cp -r gs://xx/data/* /content/
关于怎么直接使用gcp例子:
path = tfds.core.as_path('gs://reu/data/corpus.0.tfrecord')
with path.open('rb') as f:
pass
content = path.read_bytes()
assert path.exists()
assert path.name == 'corpus.0.tfrecord'
2. kaggle使用
去kaggle生成自己的token令牌上传到相应位置, 复制加权限
#!mkdir /root/.kaggle/ #如果没有
!cp /content/kaggle.json /root/.kaggle/kaggle.json
!chmod 600 /root/.kaggle/kaggle.json
!mkdir /root/.kaggle/
!cp /content/drive/MyDrive/kaggle.json /root/.kaggle/kaggle.json
!chmod 600 /root/.kaggle/kaggle.json
最好升级到最新版本
!pip uninstall -y kaggle
!pip install --upgrade pip
!pip install kaggle
#也可以直接
!pip install --upgrade --force-reinstall --no-deps kaggle
再使用:
列出 health 类别下的所有比赛:kaggle competitions list -s health
下载 <competition_name>下的Data中所有文件,指定下载路径
-c:指定比赛名
-f:下载指定文件;
-p:指定下载到的本地路径
例如:
kaggle competitions download -c dogs-vs-cats
kaggle competitions download -c diabetic-retinopathy-detection -f trainLabels.csv.zip -p /conten/data/
Kernel使用:
usage: kaggle kernels [-h] {
list,init,push,pull,output,status} ...
commands:
{
list,init,push,pull,output,status}
list List available kernels
init Initialize metadata file for a kernel
push Push new code to a kernel and run the kernel
pull Pull down code from a kernel
output Get data output from the latest kernel run
status Display the status of the latest kernel run
Example:
#拉取 rtatman/list-of-5-day-challenges这个notebook到本机目录/path/to/dest
kaggle kernels pull rtatman/list-of-5-day-challenges -p /path/to/dest
拉取他人notebook 输出(shared):
kaggle kernels output ss/notebooknames -p /path
#下载datasets
kaggle datasets download -d xx/xx -p /data/
#上传dataset 注意要修改dataset-metadata.json 改个数据集名字就好了
!kaggle datasets init -p /path/data/
!kaggle datasets create --path /path/data/ --dir-mode tar
kaggle datasets version -p /path/data -m "4" --dir-mode tar #更新版本
kaggle competitions leaderboard chaii-hindi-and-tamil-question-answering -s/-d#查看/下载
ss/notebooknames
: 作者/notebook名字path
本机目录
kaggle competitions submit -c 比赛名-f submission.csv -m "sub"
[1] kaggle kernel