前言
本文是用来记录自己对于Resnet网络的输入输出的测试,主要分析了其各个参数,并利用相应参数进行了验证。
正文
首先是引入该模型,根据输出可得其网络的基本结构:
resnet = models.resnet18()
print(resnet)
由于将输出全部展开过于冗余,这里就不将输出结果展示。
大部分时候我们利用已有网络进行训练的时候只需要改动其输入层以及输出层,对于其中的内部结构不需要进行改动,这里是改变其中的倒数第二层来作为基本的输出。
resnet=nn.Sequential(*list(resnet.children())[:-1])
print(resnet)
src=torch.rand(2,3,10,12,12)
src=src.transpose(1,2)
print(src)
print(src.shape)
'''
torch.Size([2, 10, 3, 12, 12])
(time sequence,batchsize,image channel,image width,image height)
'''
这里的话是为了模拟一下两个图片张量对应的新的一个向量,我们这里的输出向量的维度为(time sequence,batchsize,features)。
cnn_list=list()
for i in range(src.size(0)):
out=resnet(src[i,:,:,:,:])
print(out.shape)
out = out.view(out.size(0),-1)
print(out.shape)
cnn_list.append(out)
print(cnn_list)
cnn_list=torch.stack(cnn_list,dim=0)
print(cnn_list)
print(cnn_list.shape)
'''
[tensor([[2.4833, 1.8422, 0.0000, ..., 0.2742, 0.4482, 0.0000],
[0.0000, 0.9568, 1.0767, ..., 2.6281, 1.6475, 1.5964],
[1.7554, 0.1684, 0.0000, ..., 2.0997, 1.4612, 0.5415],
...,
[0.5573, 1.8402, 0.0000, ..., 0.0150, 2.3584, 1.1829],
[0.0000, 0.0000, 2.1419, ..., 0.0731, 0.7286, 0.1189],
[3.3377, 0.0000, 1.4375, ..., 0.0000, 1.0260, 2.2148]],
grad_fn=<ViewBackward0>), tensor([[0.0000, 0.7301, 1.5186, ..., 0.0000, 0.9994, 0.5153],
[3.5579, 0.0000, 1.0294, ..., 1.0422, 0.4616, 0.0000],
[0.0000, 0.0000, 0.0000, ..., 1.1791, 0.4416, 0.0204],
...,
[0.0000, 0.3153, 1.4387, ..., 0.7727, 0.0000, 1.2928],
[0.0000, 1.7551, 1.6108, ..., 0.4796, 0.0000, 0.0000],
[0.1185, 0.0000, 0.0613, ..., 0.0000, 0.0000, 1.4702]],
grad_fn=<ViewBackward0>)]
tensor([[[2.4833, 1.8422, 0.0000, ..., 0.2742, 0.4482, 0.0000],
[0.0000, 0.9568, 1.0767, ..., 2.6281, 1.6475, 1.5964],
[1.7554, 0.1684, 0.0000, ..., 2.0997, 1.4612, 0.5415],
...,
[0.5573, 1.8402, 0.0000, ..., 0.0150, 2.3584, 1.1829],
[0.0000, 0.0000, 2.1419, ..., 0.0731, 0.7286, 0.1189],
[3.3377, 0.0000, 1.4375, ..., 0.0000, 1.0260, 2.2148]],
[[0.0000, 0.7301, 1.5186, ..., 0.0000, 0.9994, 0.5153],
[3.5579, 0.0000, 1.0294, ..., 1.0422, 0.4616, 0.0000],
[0.0000, 0.0000, 0.0000, ..., 1.1791, 0.4416, 0.0204],
...,
[0.0000, 0.3153, 1.4387, ..., 0.7727, 0.0000, 1.2928],
[0.0000, 1.7551, 1.6108, ..., 0.4796, 0.0000, 0.0000],
[0.1185, 0.0000, 0.0613, ..., 0.0000, 0.0000, 1.4702]]],
grad_fn=<StackBackward0>)
torch.Size([2, 10, 512])
'''