迁移学习调用预训练模型出现Given input size: (512x3x3). Calculated output size: (512x-3x-3)错误

    调用预训练模型ResNet18时报错:RuntimeError: Given input size: (512x3x3). Calculated output size: (512x-3x-3). Output size is too small at /opt/conda/conda-bld/pytorch_1535491974311/work/aten/src/THCUNN/generic/SpatialAveragePooling.cu:63

其解决方法是将倒数第二层的self.avgpool = nn.AdaptiveAvgPool2d((1, 1))替换为self.avgpool = nn.AdaptiveAvgPool2d(1)即可。具体原因可能是一个bug.

参考:https://github.com/pytorch/vision/issues/696

原文地址:https://www.cnblogs.com/dyclown/p/12587390.html

时间: 2024-08-07 17:36:11

迁移学习调用预训练模型出现Given input size: (512x3x3). Calculated output size: (512x-3x-3)错误的相关文章

keras调用预训练模型分类

在网上看到一篇博客,地址https://www.pyimagesearch.com/2017/03/20/imagenet-vggnet-resnet-inception-xception-keras/,是关于利用keras上预训练的模型进行图像分类的示例,于是我也自己动手运行了一下,效果,一般. 上代码 from keras.applications import ResNet50 from keras.applications import InceptionV3 from keras.ap

Keras猫狗大战七:resnet50预训练模型迁移学习优化,动态调整学习率,精度提高到96.2%

在https://www.cnblogs.com/zhengbiqing/p/11780161.html中直接在resnet网络的卷积层后添加一层分类层,得到一个最简单的迁移学习模型,得到的结果为95.3%. 这里对最后的分类网络做些优化:用GlobalAveragePooling2D替换Flatten.增加一个密集连接层(同时添加BN.Activation.Dropout): conv_base = ResNet50(weights='imagenet', include_top=False,

Caffe学习3-使用预训练模型finetuning

该篇陈述了在采用imagenet大数据集合上使用caffenet预训练得到caffemodel,然后应用该caffemodel进一步fintuning图像风格数据库style.下面为主要步骤: #采用别人的预训练模型,在自己的数据库上进行微调(fine-tunning) #fine-tune是应用别人在大数据集合上训练到一定程度的caffemodel,在这进行微调.这比随机化参数要好,因为该模型可能已经接近最优! #可以省时间,省资源.也可以克服没有大数据的困扰 #这里采用imagenet数据集

1、VGG16 2、VGG19 3、ResNet50 4、Inception V3 5、Xception介绍——迁移学习

ResNet, AlexNet, VGG, Inception: 理解各种各样的CNN架构 本文翻译自ResNet, AlexNet, VGG, Inception: Understanding various architectures of Convolutional Networks,原作者保留版权 卷积神经网络在视觉识别任务上的表现令人称奇.好的CNN网络是带有上百万参数和许多隐含层的"庞然怪物".事实上,一个不好的经验规则是:网络越深,效果越好.AlexNet,VGG,Inc

Gluon炼丹(Kaggle 120种狗分类,迁移学习加双模型融合)

http://www.cnblogs.com/fiercex/p/7927804.html fiercex 路漫漫其修远兮,吾将上下而求索 Gluon炼丹(Kaggle 120种狗分类,迁移学习加双模型融合) 这是在kaggle上的一个练习比赛,使用的是ImageNet数据集的子集.注意,mxnet版本要高于0.12.1b2017112.下载数据集. train.zip test.zip labels然后解压在data文件夹下 1. 数据 1.1 整理数据 将解压后的数据整理成Gluon能够读取

预训练模型:XLNet 和他的先辈们

预训练模型 在CV中,预训练模型如ImagNet取得很大的成功,而在NLP中之前一直没有一个可以承担此角色的模型,目前,预训练模型如雨后春笋,是当今NLP领域最热的研究领域之一. 预训练模型属于迁移学习,即在某一任务上训练的模型,经过微调(finetune)可以应用到其它任务上. 在NLP领域,最早的预训练模型可以说是word2vec, Mikolov应用语言模型进行训练,产生的词向量(word embeddings)可以用于其他任务上,这样的词向量在目标任务上,可以固定不变,也可以随着模型训练

迁移学习全面概述:从基本概念到相关研究

目录: 1.什么是迁移学习? 2.为什么现在需要迁移学习? 3.迁移学习的定义 4.迁移学习的场景 5.迁移学习的应用 从模拟中学习 适应到新的域 跨语言迁移知识 6.迁移学习的方法 使用预训练的 CNN 特征 学习域不变的表征 让表征更加相似 混淆域 7.相关的研究领域 半监督学习 更有效地使用可用的数据 提高模型的泛化能力 让模型更加稳健 多任务学习 持续学习 zero-shot 学习 8.总结 ------------------------------------------------

预训练模型与Keras.applications.models权重资源地址

什么是预训练模型 简单来说,预训练模型(pre-trained model)是前人为了解决类似问题所创造出来的模型.你在解决问题的时候,不用从零开始训练一个新模型,可以从在类似问题中训练过的模型入手. 比如说,你如果想做一辆自动驾驶汽车,可以花数年时间从零开始构建一个性能优良的图像识别算法,也可以从Google在ImageNet数据集上训练得到的Inception model(一个预训练模型)起步,来识别图像. 一个预训练模型可能对于你的应用中并不是100%的准确对口,但是它可以为你节省大量功夫

神经网络(十二) 迁移学习

介绍 1.什么时候需要进行迁移学习 目前大多数机器学习算法均是假设训练数据以及测试数据的特征分布相同.然而这在现实世界中却时常不可行.例如我们我们要对一个任务进行分类,但是此任务中数据不充足(在迁移学习中也被称为目标域),然而却有大量的相关的训练数据(在迁移学习中也被称为源域),但是此训练数据与所需进行的分类任务中的测试数据特征分布不同(例如语音情感识别中,一种语言的语音数据充足,然而所需进行分类任务的情感数据却极度缺乏),在这种情况下如果可以采用合适的迁移学习方法则可以大大提高样本不充足任务的