Pytorch,自定义层按顺序工作,但不按功能工作

Pytorch,自定义层按顺序工作,但不按功能工作,pytorch,conv-neural-network,recurrent-neural-network,Pytorch,Conv Neural Network,Recurrent Neural Network,我使用的是来自的convGRU,当我在顺序模式下使用它时,它可以正常工作,但它不能与函数一起使用。当我说它不起作用时,我的意思是我从函数中得到黑色预测,而从序列中,输出与输入相似。代码中的其他内容保持不变。 下面是一个例子,说明了我一直从一行和另一行(第一行是目标,第二行是预测) 对 model = nn.Sequential( ConvGRU( input_size=(64, 64), input_dim=1, hidden_dim=1

我使用的是来自的convGRU,当我在顺序模式下使用它时,它可以正常工作,但它不能与函数一起使用。当我说它不起作用时,我的意思是我从函数中得到黑色预测,而从序列中,输出与输入相似。代码中的其他内容保持不变。 下面是一个例子,说明了我一直从一行和另一行(第一行是目标,第二行是预测)

model = nn.Sequential(
    ConvGRU(
        input_size=(64, 64),
        input_dim=1,
        hidden_dim=1,
        kernel_size=(3, 3),
        num_layers=1,
        dtype=dtype,
        batch_first=True,
        bias=True,
        return_all_layers=False,
    )
)
是否知道在编程自定义层时,在功能或顺序中使用时应该考虑不同的因素


谢谢

如果两种情况下代码的其余部分相同且
ConvGRU
相同,则两者应相同。在第一种情况下,您似乎没有提供应作为第一维度的
batch
数据,而在第二种(“非功能性”)情况下正确地提供数据时,您会对此进行检查。顺便说一句,两者都不是功能性方法,
functional
可以在
torch.nn.functional
中找到,并且绝对不应该过度使用(通常用于激活或池)。如果其余代码相同,并且
ConvGRU
在这两种情况下都相同,则两者应该是等效的。在第一种情况下,您似乎没有提供应作为第一维度的
batch
数据,而在第二种(“非功能性”)情况下正确地提供数据时,您会对此进行检查。顺便说一句,两者都不是功能性方法,
功能性
可以在
torch.nn.功能性
中找到,并且绝对不应该过度使用(通常用于激活或池化)。
model = nn.Sequential(
    ConvGRU(
        input_size=(64, 64),
        input_dim=1,
        hidden_dim=1,
        kernel_size=(3, 3),
        num_layers=1,
        dtype=dtype,
        batch_first=True,
        bias=True,
        return_all_layers=False,
    )
)