百科问答小站 logo
百科问答小站 font logo



写深度学习代码是先写model还是dataset还是train呢,有个一般化的顺序吗? 第1页

  

user avatar   feng-hao-zhe-66 网友的相关建议: 
      

谢邀。先给结论:以我写了两三年pytorch代码的经验而言,比较好的顺序是先写model,再写dataset,最后写train

在讨论码组件的具体顺序前,我们先分析每一个组件背后的目的和逻辑。

model构成了整个深度学习训练与推断系统骨架,也确定了整个AI模型的输入和输出格式。对于视觉任务,模型架构多为卷积神经网络或是最新的ViT模型;对于NLP任务,模型架构多为Transformer以及Bert;对于时间序列预测,模型架构多为RNNLSTM。不同的model对应了不同的数据输入格式,如ResNet一般是输入多通道二维矩阵,而ViT则需要输入带有位置信息的图像patchs。确定了用什么样的model后,数据的输入格式也就确定下来。根据确定的输入格式,我们才能构建对应的dataset

dataset构建了整个AI模型的输入与输出格式。在写作dataset组件时,我们需要考虑数据的存储位置与存储方式,如数据是否是分布式存储的,模型是否要在多机多卡的情况下运行,读写速度是否存在瓶颈,如果机械硬盘带来了读写瓶颈则需要将数据预加载进内存等。在写dataset组件时,我们也要反向微调model组件。例如,确定了分布式训练的数据读写后,需要用nn.DataParallel或者nn.DistributedDataParallel等模块包裹model,使模型能够在多机多卡上运行。此外,dataset组件的写作也会影响训练策略,这也为构建train组件做了铺垫。比如根据显存大小,我们需要确定相应的BatchSize,而BatchSize则直接影响学习率的大小。再比如根据数据的分布情况,我们需要选择不同的采样策略进行Feature Balance,而这也会体现在训练策略中。

train构建了模型的训练策略以及评估方法,它是最重要也是最复杂的组件。先构建modeldataset可以添加限制,减少train组件的复杂度。在train组件中,我们需要根据训练环境(单机多卡,多机多卡或是联邦学习)确定模型更新的策略,以及确定训练总时长epochs优化器的类型,学习率的大小与衰减策略,参数的初始化方法,模型损失函数。此外,为了对抗过拟合,提升泛化性,还需要引入合适的正则化方法,如DropoutBatchNormL2-RegularizationData Augmentation等。有些提升泛化性能的方法可以直接在train组件中实现(如添加L2-RegMixup),有些则需要添加进model中(如DropoutBatchNorm),还有些需要添加进dataset中(如Data Augmentation)。此处安利一下我们的专栏教程:数据增广的方法与代码实现

此外,train还需要记录训练过程的一些重要信息,并将这些信息可视化出来,比如在每个epoch上记录训练集的平均损失以及测试集精度,并将这些信息写入tensorboard,然后在网页端实时监控。在构建train组件中,我们需要随时根据模型表现进行参数微调,并根据结果改进modeldataset两个组件。

最后,我想分享两个我们组自己编写的,给新同学上手使用的深度学习Project。它们都采用model-dataset-train的顺序进行构建,实现了单机多卡,联邦学习等训练环境:

ps:收藏的同时麻烦点个赞吧,谢谢hxdm!


user avatar   fu-lan-duo-lu-18 网友的相关建议: 
      

这个问题问得很好啊,我的建议是看今年年会的摘要集:

中国化学会第32届学术年会 - 论文检索系统 - 中国化学会

可以看到有很多分会,不过计算化学分布得比较散,夹杂在各个分会中。各分会的主题可以从这里找到,可能相关的包括:

有一些主题是理论计算夹杂着实验的,还需要仔细辨别。回到摘要集,以第一分会为例:

中国化学会第32届学术年会摘要集-第一分会:物理化学前沿 - 论文检索系统 - 中国化学会

可以看到题目和单位全都标出来了,而且还可以下载。

显然,能找到相关方向的摘要的单位,就是开设了相关方向的院校,甚至还能精确到具体的某个课题组。




  

相关话题

  时间序列数据上可以抽取哪些频域特征? 
  基于深度学习的人工智能程序和传统程序的差别在哪里? 
  如何看待KDD'21的文章,异质图神经网络的效果不如简单的GCN、GAT? 
  相比于时下流行的机器学习方法(联接主义),传统的人工智能方法(符号主义)有什么独一无二的优势? 
  从今年校招来看,机器学习等算法岗位应届生超多,竞争激烈,未来 3-5 年机器学习相关就业会达到饱和吗? 
  编程达到什么水平才能编写出像caffe这样的深度学习框架? 
  AlphaGo「理解」围棋吗? 
  大家推荐一下,哪些学校的导师有在做量化交易、股票预测的? 
  南京大学LAMDA(周志华)组的实力如何? 
  如何看待人工智能领域的很多专家认为「人工智能将对人类存亡造成威胁」的观点? 

前一个讨论
计算机图形学毕业生怎么这么少啊?
下一个讨论
如何看待与评价 AAAI 2022 的录用结果?





© 2024-11-09 - tinynew.org. All Rights Reserved.
© 2024-11-09 - tinynew.org. 保留所有权利