![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Pytorch
文章平均质量分 77
汐梦聆海
過去を捨てなくては 未来の場所がない
展开
-
SOLO训练代码解析
之前写过对SOLO demo的代码解析,今天来梳理一下training过程。首先是tools/train.py,这个文件是训练的开始,命令行运行的就是该文件:from mmdet.apis import set_random_seed, train_detectordef main(): args = parse_args() cfg = Config.fromfile(args.config) # set cudnn_benchmark if cfg.get('c原创 2021-04-16 01:05:41 · 1972 阅读 · 4 评论 -
SOLO代码踩过的各种坑
一、ValueError: numpy.ufunc size changed, may indicate binary incompatibility.解决方案:numpy版本过高,输入如下三行命令:pip uninstall numpypip install numpy==1.14.5pip install --upgrade numpy二、RuntimeError: expected device cuda:0 and dtype Float but got device cuda:0这个原创 2021-04-09 00:20:51 · 1585 阅读 · 1 评论 -
Pytorch中只导入部分层权重的方法
我们通常会用到迁移学习,即在一个比较通用的pretext-task上做预训练,随后针对不同的downstream task进行微调。而在微调的时候,网络结构的最后几层通常是要做出改变的。举个例子,假设pretext-task是在imagenet上面做图像分类,而下游任务是做语义分割,那么在微调的时候需要将分类网络的最后几层全连接层去掉,改造成FCN的网络结构。此时就需要我们把前面层的权重加载进去。如果改了模型结构以后,再简单粗暴的使用torch.load_state_dict(torch.load(‘xx原创 2020-08-17 01:55:34 · 11411 阅读 · 5 评论 -
Pytorch中的神坑:关于model.eval的问题
有时候使用Pytorch训练完模型,在测试数据上面得到的结果令人大跌眼镜。这个时候需要检查一下定义的Model类中有没有 BN 或 Dropout 层,如果有任何一个存在,那么在测试之前需要加入一行代码:#model是实例化的模型对象model = model.eval()表示将模型转变为evaluation(测试)模式,这样就可以排除BN和Dropout对测试的干扰。因为BN和Dropo...原创 2020-04-26 17:09:32 · 8611 阅读 · 6 评论 -
Pytorch迁移学习实战:基于vgg11做MNIST数据集的分类
在对一个新的数据集进行分类时,经常使用一些预训练好的模型,如AlexNet,VGG,Resnet等,并且将网络的最后几层fc进行修改,以适应新数据集的类别个数。这样做的可行性在于,深度神经网络通过预训练得到数据分层级的特征,比较shallow的层学习到的是一些低层级的语义特征,如边缘信息、颜色、纹理等等,这些特征在不同的分类任务中大多是不变的;最后几层学习到的是一些高层的特征,这样是不同数据集的...原创 2020-04-25 23:59:23 · 4105 阅读 · 1 评论