gpt4 book ai didi

pytorch 一个模型的多个分支

转载 作者:行者123 更新时间:2023-12-01 23:28:28 25 4
gpt4 key购买 nike

enter image description here

您好,我正在尝试使用 pytorch 制作这个模型。

每个输入由 20 张大小为 28 X 28 的图像组成,也就是图像中的 C1 ~ Cp。每个图像都进入具有相同结构的 CNN,但它们的输出最终会连接起来。

我目前正在努力为每个相应的 CNN 模型提供多个输入。第一个盒子中具有三个卷积层的每个模型看起来像这样的代码,但我不太确定如何将 20 个不同的输入放入具有相同结构的不同模型以最终连接起来。

        self.features = nn.Sequential(
nn.Conv2d(1,10, kernel_size = 3, padding = 1),
nn.ReLU(),
nn.Conv2d(10, 14, kernel_size=3, padding=1),
nn.ReLU(),
nn.Conv2d(14, 18, kernel_size=3, padding=1),
nn.ReLU(),
nn.Flatten(),
nn.Linear(28*28*18, 256)
)

我已经尝试将输入列表作为转发函数的输入,但它以错误告终,无法通过。如果有任何不清楚的地方,我非常乐意进一步解释。

最佳答案

只需将forward定义为将张量列表作为输入,然后用相应的CNN处理每个输入(在示例片段中,CNN共享相同的结构但不共享参数,即我认为您需要什么。您需要根据您的规范填写点 ...

class MyModel(torch.nn.Module):
def __init__(self, ...):
...
self.cnns = torch.nn.ModuleList([torch.nn.Sequential(...) for _ in range(20)])

def forward(xs: list[Tensor]):
return torch.cat([cnn(x) for x, cnn in zip(xs, self.cnns)], dim=...)

关于pytorch 一个模型的多个分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66786787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com