Kaggle从入门到实战教程(新手必备)
Kaggle从入门到实战教程(新手必备)
文章目录:
因为自己的电脑GPU是1050Ti,4G显存,有些任务实在跑不起来,学生党也租不起服务器,只能去Kaggle上蹭一下,奈何,网上关于Kaggle的实际操作使用流程太少,即使有也不够细致,只有自己在黑夜中慢慢摸索,特此写下一些自己的摸索过程!
kaggle kernels提供两种规格的docker供食用。
1、CPU型:4 cores 16g内存
2、GPU型:2 cores 14g内存 tesla-p100 16G
登录kaggle之后,顶部导航条第三个就是Kernels
1 kernel的创建
首先打开Kaggle的网站之后,你会看到有New Notebooks
,这里就是新建一个kernel,这个新建kernel就类似自己在本地IDE上创建一个项目。
Kaggle新建kernel有两种方式,这个主要是编辑的环境:
- Notebook:类似Jupyter notebook
- Script:类似Pycharm这种编辑环境
编程语言目前只支持python和R两种
1.1 Notebook的kernel的创建(从零开始创建)
什么叫从零开始创建呢,此时只是创建一个kernel,当前kernel是没有数据的,如果需要数据需要自己上传
1.1.1 相关的配置说明
创建好Notebook
kernel如下:
上图可以看到有:
1、Internet off
2、GPU off
Internet
是否需要联网,如果需要下载东西需要打开GPU
是否需要使用GPU,如果需要使用GPU要打开
注意:这两个设置默认都是关闭的,如果需要使用则需要打开,打开之后kernel会重新加载
import os
print(os.getcwd()) # 当前文件所在的路径
print(os.listdir(os.getcwd())) # 在/kaggle/working文件夹下有两个隐藏文件['.ipynb_checkpoints', '__notebook_source__.ipynb']
print(os.listdir("../../"))
print(os.listdir("../"))
print(os.listdir("../input")) # 里面是没有数据的
print(os.listdir("../../kaggle"))
# 结果
"""
/kaggle/working
['.ipynb_checkpoints', '__notebook_source__.ipynb']
['bin', 'var', 'mnt', 'etc', 'root', 'home', 'tmp', 'lib', 'sbin', 'proc', 'lib64', 'srv', 'boot', 'opt', 'sys', 'media', 'usr', 'run', 'dev', 'kaggle', '.dockerenv', '.jupyter', 'src', '=2.18', '=3.0.7', '=0.2.4', '=1.3.6', '=0.8.0', '=1.0.2', '=1.1', '=0.6.0', '.theanorc']
['lib', 'input', 'config', 'working']
[]
['lib', 'input', 'config', 'working']
"""
!ls -al
# 结果
"""
total 16
drwxr-xr-x 3 root root 4096 Nov 28 06:34 .
drwxr-xr-x 6 root root 4096 Nov 28 06:34 ..
drwxr-xr-x 2 root root 4096 Nov 28 06:34 .ipynb_checkpoints
-rw-r--r-- 1 root root 199 Nov 28 06:34 __notebook_source__.ipynb
"""
主要文件目录如下:
- input:一般用于存放训练数据的文件夹
- config:存放配置文件
- lib
- working :工作路径,主要是我们创建的代码文件的工作目录
- .ipynb_checkpoints
- notebook_source.ipynb
1.2 Script的kernel的创建(从零开始创建)
Script
的kernel创建和Notebook
的kernel创建类似,创建好如下如:
1.3 从已有的数据集开始创建kernel
点进去Cifar10数据集之后,就可以在这个数据集上创建一个kernel,相当是把Cifar10数据集直接放到了新创建kernel的input文件夹
2 kaggle创建新的文件
2.1 kaggle通过上传创建新的文件
我们可以看到:
在两种编辑模式下都有:
- Upload script
- Download script
- Upload notebook
- Download notebook
重点说明:
1、无论是script还是notebook的情况下,你把你当前的代码下载下来都是.ipynb文件
类型
2、无论是script还是notebook的情况下,如果你上传的是.py类型的文件
都会报错:Uploading a kernel failed. Please validate your kernel and try again at a later time.
3、在script下可以上传.ipynb文件
,但是上传之后的文件并不能够运行,因为它不是notebook格式类型
4、在script和notebook的编辑环境下上传新的 .ipynb文件,当前的代码都会被新上传的 .ipynb的代码替换,也就是说无论你上传多少个 .ipynb 文件,最后都只会保存最后一个.ipynb文件
2.2 自己手动创建py文件
如下图所示,可以通过手动创建.py文件
,而且你新建的这个’.py’文件还可以下载下俩,同时也可以新建文件夹
但是:
你新建的这个 .py 文件并不能够打开,也不能在里面写代码,不知道怎么搞,后续探索吧,如果有知道的欢迎留言交流。
2.3 kaggle如何直接上传完整的项目使用,如何使用.py文件
重要! 重要! 重要!
上面分析了这么多,都是基于 .ipynb类型的文件,而且只能够上传一个文件,更重要的是还不能够创建 .py 文件,但是我们项目都会创建很多 .py 文件互相导入,不会使代码过长,那如何在kaggle使用呢?
下面我们一起来看下这个问题怎么破:
1、当前的工作目录是在kaggle/working
目录下,你可以用如下代码查看:
import os
print(os.getcwd())
print(os.listdir(os.getcwd()))
# 结果
"""
/kaggle/working
['__notebook_source__.ipynb', '.ipynb_checkpoints']
"""
2、改变当前的工作目录
此时我们把当前的工作目录改到了input目录
下我们上传的项目,这样就可以直接使用我们在项目中的.py文件
啦
""" change working directory """
import os
if os.path.basename(os.getcwd()) == 'working':
os.chdir('../input/tf-gan-code-20181007/transparent_latent_gan_kaggle_2018_1007/transparent_latent_gan_kaggle_2018_1007')
print('current working directory is {}'.format(os.getcwd()))
print(os.getcwd())
print(os.listdir(os.getcwd()))
# 结果
"""
current working directory is /kaggle/input/tf-gan-code-20181007/transparent_latent_gan_kaggle_2018_1007/transparent_latent_gan_kaggle_2018_1007
/kaggle/input/tf-gan-code-20181007/transparent_latent_gan_kaggle_2018_1007/transparent_latent_gan_kaggle_2018_1007
['src', 'data', 'asset_model', 'configs', '.gitignore', 'asset_results', 'LICENSE', 'tests', 'README.md']
"""
问题待续:
如果我们开发好的项目可以直接通过这种方式上传到input文件夹,通过更改工作目录使用,但是如果文件需要修改,我们是否还是每次都需要进行上传,这样感觉比较麻烦,不知道有没有人知道解决方案,欢迎留言交流
3 kaggle如何上传数据
kaggle创建新的kernel如何上传数据,一共有两种方式,点击Add Data
就可以看到
两种方式:
1、上传自己本地的数据集,这个一般比较慢
2、直接使用kaggle上现有的数据集,当然它也是需要下载的,但是相对自己本地是数据集比较快一点。
注意:
1、 上传的数据文件都放在了
input文件夹
下
2、所有的上传的数据集只能够读取read-only data
4 实战–如何在Kaggle上提交自己的项目结果
未完待续
5 kaggle使用常见问题
5.1 上传问题
报错:
Uploading a kernel failed. Please validate your kernel and try again at a later time.
在Notebook kernel
下上传文件报错,这里上传的时候只能够上传.ipynb类型的文件
,我之所以会出现这个错误就是由于上传的是.py
文件,所以上传之前要确定文件的类型
参考:
1、参考1:https://zh.d2l.ai/chapter_deep-learning-basics/kaggle-house-price.html
2、参考2:https://zh.d2l.ai/chapter_computer-vision/kaggle-gluon-dog.html
3、参考3:https://github.com/apachecn/Interview
4、参考4:https://karbo.online/dl/kaggle-gpu/
5、参考5:https://zhuanlan.zhihu.com/p/60912138
6、参考6:
7、参考7:
一些开源的数据竞赛项目:
https://github.com/Smilexuhc/Data-Competition-TopSolution
简单先整理一点今天的摸索过程,自然是摸索肯定有很多不足之处,欢迎大家指导,一起交流,争取早日上船!
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠
上一篇: Mybatis-详解1