PyTorch中GRU层输入形状及前向代码正确性咨询
PyTorch GRU输入形状问题解答
问题1:input_size=128的定义是否正确?
这取决于你对序列的定义:
- 若你想把128张图像作为GRU的序列时间步(每个时间步输入单张图像的9个特征),那
input_size应该设为9,此时你的定义是错误的。因为input_size代表每个时间步输入的特征维度,这里每个时间步对应一张图像的9维特征。 - 若你想把9个特征维度作为GRU的序列时间步(每个时间步输入128张图像的对应特征值),那
input_size=128是正确的。此时每个时间步的输入维度是128,和你设置的参数匹配。
问题2:前向传播代码是否正确?
同样取决于你的序列定义:
- 若你的目标是把9个特征作为时间步,那
features.permute(0,2,1)将张量转为[1,9,128]是正确的。因为当batch_first=True时,GRU要求输入格式为(batch_size, seq_len, input_size),这里batch_size=1、seq_len=9、input_size=128,完全符合要求,后续输入GRU的操作没问题。 - 若你的目标是把128张图像作为时间步,那这段代码是错误的。此时你应该直接使用原始张量
(1,128,9)输入GRU,同时需要将GRU的input_size改为9。
内容的提问来源于stack exchange,提问作者Talha Anwar
相关产品推荐
相关产品推荐

