使用Kaggle训练模型的记录

由于自己手头没有GPU资源,所以只能靠免费的GPU勉强做实验。之前使用的是Google Colab,但是用多用久了以后,就特别容易断,断开以后,基本上就寄了。所以又转向了Kaggle。Kaggle的好处就在于不用fq就能上传文件、运行代码,所以更稳定一点,目前我没有遇到跑着跑着突然断了的情况。这篇博客就记录下使用Kaggle的问题。

Q1:如何上传在本地写好的文件和代码?

A1:Kaggle中将你想上传的文件都视为Data,所以在Data这边点击这个上传的图标,输入Data的名字,将本地文件(文件、文件夹等)拖拽到对话框中,点击创建,就可以完成文件的上传。

 

 创建完成以后,就可以在右侧的Input中看到上传的文件:

Q2:如何运行上传的文件?

A2:有两种情况:

① 想在 Notebook的cell中导入上传文件中的函数、类等。

需要先创建一个cell,加入Input的路径,代码如下:

import sys

sys.path.append('../input/mytest')

运行完以后就可以正常写 import语句了。假设test1文件中有一个Test类,则直接写:

from test1 import Test

② 想直接运行上传的py文件。

那就视为命令行运行py文件,需要在命令前面加一个英文的 !。比如,直接运行test1,就直接在cell中输入:

!python /kaggle/input/mytest/test1.py

想快速知道文件的路径也很简单,用鼠标点击文件名后的粘贴按钮即可:

Q3:如何更新上传的文件?

A3:

点击左侧的Datasets

 之后再点击Your work,找到刚才建立的Data,点进去

 点击右上角的New version

 还是像刚才一样,将新的文件拖拽进来就可以了。

这边会出现一个问题,就是如何将新文件上传到文件夹中(比如图中的test文件夹)。如果直接将文件拖拽进来,会保存在根目录下,且无法移动。我的解决方法是,在本地就建好同名的文件夹,将要上传的文件放进去,再将整个文件夹上传,之后Kaggle会自动合并同名文件夹。

之后,回到刚才的Notebook,在右侧Input这边点击Check for updates,就能更新成最新的文件了。

Q4:如何输出文件?

A4:所有的输出文件都会保存在Output中,可以下载到本地查看。

如果是要在代码中写入文件,则需要在你本来的路径前加上"../working"

with open('../working/output.txt', 'w') as f:
    f.write('Hello!')

 右侧的Output就生成了对应的文件:

Q5:如何更新包的版本?

A5:以Transformers为例,我写博客的时候,内置版本是4.20.1。

但是我想更新到最新的版本,则使用命令:

! pip install --upgrade transformers

 注意这里有一个坑。更新完以后,我使用

!pip list

查看transformers的版本,已经成功更新到最新版本。但是我再次运行这段代码

 它依然是之前的版本,并没有更新。

解决方法是在右侧Settings找到ENVIRONMENT,选择下面的Always use latest environment。

Q6:如何后台运行程序?

A6:在Notebook中,点击右上角的Save Version。

再选择Save&Run All。

 此时就会在左下角看到程序后台运行的记录了,跑完以后可以去查看log和下载输出文件。

有一个坑就是后台运行时间上限是12个小时,到点自动断开,所以超过12小时的程序最好分开运行或者选择别的平台。

### 在Kaggle平台上运行TensorFlow模型 #### 创建并配置环境 为了在Kaggle上顺利运行TensorFlow模型,首先需要创建一个新的Notebook项目。通过Kaggle界面新建一个Kernel,并选择Python作为编程语言。 #### 加载必要的库和模块 确保导入所有必需的库以支持后续操作: ```python import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers ``` #### 构建序列模型 定义神经网络架构时可以采用Sequential API方式构建模型。这里展示了一个简单的两层全连接前馈神经网络的例子[^1]: ```python model = keras.Sequential([ layers.Dense(units=4, activation='relu', input_shape=[2]), layers.Dense(units=3, activation='relu'), layers.Dense(units=1), ]) ``` #### 设置数据路径与读取数据 当处理图像分类任务或其他涉及文件系统的场景时,需指定正确的相对路径访问输入的数据集。对于存储于`../input/flower/pictures`下的花朵图片集合而言,可以通过设置变量`data_dir`指向该位置以便加载训练样本[^2]: ```python data_dir = '../input/flower/pictures' ``` #### 启用硬件加速器(GPU/TPU) 为了让模型能够充分利用云端提供的高性能计算资源,可以在Kaggle Notebook设置中开启GPU或TPU选项。这一步骤有助于显著缩短大型复杂模型训练时间。 #### 训练过程中的评估指标设定 除了损失函数外,还可以引入其他性能度量标准用于监控学习进度。例如,在多类别分类问题里常用准确率为评价依据之一。下面展示了如何声明相应的操作节点来衡量预测精度[^3]: ```python predictions = tf.placeholder(shape=[None, 10], dtype=tf.int32) train_correct_prediction = tf.equal(tf.argmax(y_train, 1), tf.argmax(predictions, 1)) train_accuracy_op = tf.reduce_mean(tf.cast(train_correct_prediction, tf.float32)) ``` #### 模型保存与恢复 完成一轮或多轮迭代更新之后,建议及时将学到的最佳参数组合持久化下来供日后调用。利用内置方法`save()`可方便地实现这一点;而对于已经存在的预训练模型,则可通过`load_model()`快速加载至内存继续优化或是直接投入应用阶段: ```python # 保存模型到output目录下名为'4flowers.h5'的HDF5文件中 model.save('4flowers.h5') ``` #### 测试已训练好的模型 一旦获得了满意的模型版本,便可以用它来进行未知实例的推断工作。具体做法是从测试集中随机抽取若干条记录传入生成对抗网络(GAN),进而获取对应的可视化效果对比图样[^5]: ```python for example_input, example_target in dataset_test.skip(1).take(3): generate_images(generator, example_input, example_target) ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值