Pytorch - 推断线性层 in_features

4
我正在构建一个玩具模型,用于输入一些图像并给出分类结果。我的模型如下:
conv2d -> 池化(pool) -> conv2d -> 线性(linear) -> 线性(linear)。
我的问题是,在创建模型时,我们必须根据输入图像的大小计算第一个线性层中的 in_features(输入特征数)。如果我们获得不同大小的新图像,则必须重新计算线性层的 in_features。为什么我们必须这样做?难道不能推断出它吗?
2个回答

6
截至1.8版本,PyTorch现在拥有LazyLinear 模块,可以推断输入维度:

torch.nn.Linear模块,其中in_features是被推断的。


2
谢谢,我已经习惯了计算它,但是他们包含这个功能非常好。 - Kevin

0

哦,我也遇到了这种情况,这是我的解决方案

    output3=torch.flatten(output1) # flatten the tensor
    output3_1=output3.clone().detach() 

#创建一个新的张量,其require_grad=False

    output4=output3_1.numpy()ndarry #turn the tensor to ndarry
    self.size=np.size(output4) 

#获取ndarray的大小,self.size将是一个int类
现在你已经得到了in_feature的值


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接