代码写作套路【2】实验进行中

在这里插入图片描述

实验中的代码写作至关重要,好的写作习惯有助于项目的推进,从而帮助实验者减少花费在实验上的时间。

命名

推荐使用时间戳命名法:时间戳+数据+具体细节。同时文件存储在所在日期到文件夹下方便进行管理。

# timestamp是日期为名的文件夹,id_是时间标识用于文件命名
import datetime
from datetime import timezone, timedelta

timestamp = datetime.datetime.now().astimezone(timezone(timedelta(hours=8))).strftime("%Y%m%d/")
id_ = datetime.datetime.now().astimezone(timezone(timedelta(hours=8))).strftime("%Y%m%d-%H%M%S")
# model_save
# pytorch
torch.save(model,'model'+id)
# tensorflow
model.save('model'+id_+'.h5')

# model_load
# pytorch
model = torch.load(model_path)
# tensorflow
model = tensorflow.keras.models.load_model(model_path)

项目结构

详见博客:代码写作套路【4】项目文件夹构建

参数

模型训练与测试所需要的参数众多。以模型测试实验的参数为例,模型测试实验中的参数包括,所选择的模型,测试数据,测试规模等等。使用常规的方法每次测试都要向测试代码中输入参数较为麻烦。使用argparse包可以简化每次训练的过程。

# parse
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--test_query_size", help="number of query for test model", type=int, default=100)
parser.add_argument("--original_data", help="the csv file we play ce on",type=str, default='forest10.csv')
parser.add_argument("--model", help = 'the model you want to test')
args = parser.parse_args()

test_query_size = args.test_query_size
data = pd.read_csv(args.original_data)
model = tf.keras.models.load_model(args.model)

parse展示了实验案例

pdb调试

pdb调试工具可以帮助我们快速解决bug。

# pdb
import pdb
'''your code'''
pdb.set_trace()
'''your code'''

在终端中运行python代码时,可以运行python -m pdb [your py]可以得到相同的效果。

模型细节查看

这部分可以参考代码阅读套路【1】中的内容,先将模型加载出来(或是训练出来),然后调用下面语句,查看这个模型的可选属性有哪些。

print(model.__dict__) # 查看有哪些模型细节可以查看
for name, parameters in model.named_parameters(): # 查看模型参数
 	print(name, ':', parameters)

实验跑得很慢怎么办

有时候实验跑的太慢也会成为阻碍实验继续进行的一个因素,这时候可以考虑以下几个解决方案

  1. 从cpu换到gpu
  2. 从一个device到另一个device
  3. 不使用虚拟环境

实验结果下载

实验结果命名时要遵循统一命名规则,这样方便下载实验结果。

# 将所有名字中含有xbhat的文件移动到tmp
find -name "*xbhat*" | xargs -I file mv file tmp 

参考博客Linux 移动文件名含有特定字段的文件

空间预算与解决

在使用阿里云时时常发生服务器存储空间不够的情况,这个时候可以通过ln方法建立链接,将文件夹链接到临时空间中。

df -hl

请添加图片描述
可以发现/dev,/dev/shm拥有很大空间,可以用于存储实验结果,进行完实验后将结果立刻下载到本地(重启服务器后存在临时硬盘的内容会消失)。

ln -s [link_to_folder] tmp

运行上述代码,则可以在文件夹下新建立tmp文件夹,并将tmp链接至临时空间。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值