首页 > 其他 > 详细

迁移学习

时间:2019-08-05 13:22:36      阅读:80      评论:0      收藏:0      [点我收藏+]

 

from torchvision.models import resnet18
from utils import Flatten

trained_model = resnet18(pretrained = True)
model = nn.Sequential(*list(trained_model.children())[:-1]),  #[b,512,1,1]
                        Flatten(),  #[b,512,1,1] ===>[b,512*1*1]
                        nn.Linear(512,5)
        )
x = torch.randn(2,3,224,224)
print(model(x).shape)

 

pytorch使用torch.nn.Sequential快速搭建神经网络

 

Flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。保留第一维的维度,其他相乘为一个数. 链接

技术分享图片

 

 

class torch.nn.Linear(in_features,out_features,bias = True )[来源]

对传入数据应用线性变换:y = A x+ b

 

参数:

in_features - 每个输入样本的大小

out_features - 每个输出样本的大小

bias - 如果设置为False,则图层不会学习附加偏差。默认值:True

代码:

m = nn.Linear(20, 30)

input = autograd.Variable(torch.randn(128, 20))

output = m(input)

print(output.size())

输出:

torch.Size([128, 30])

 

output.size()=矩阵size(128,20)*矩阵size(20,30)=(128,30)

 

迁移学习

原文:https://www.cnblogs.com/kevin-red-heart/p/11302060.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!