我了解register_buffer 的作用以及register_buffer 和 register_parameters之间的区别。
但是 PyTorch 中缓冲区的准确定义是什么?
前提1:
关于 RNN 层中的神经元 - 我的理解是“在每个时间步长,每个神经元都接收输入向量 x (t) 和来自前一个时间步长 y (t –1) 的输出向量” [1]:

前提2:
也是我的理解,在Pytorch的GRU层中,input_size和hidden_size的含义如下:
- input_size – 输入 x 中预期特征的数量
- hidden_size – 隐藏状态中的特征数 h
所以很自然地,hidden_size应该代表 GRU 层中的神经元数量。
我的问题:
给定以下 GRU 层:
# assume that hidden_size = 3
class Encoder(nn.Module):
def __init__(self, src_dictionary_size, hidden_size):
super(Encoder, self).__init__()
self.embedding = nn.Embedding(src_dictionary_size, hidden_size)
self.gru = nn.GRU(input_size = hidden_size, hidden_size = hidden_size)
Run Code Online (Sandbox Code Playgroud)
假设 hidden_size 为 3,我的理解是上面的 GRU 层将有 3 个神经元,每个神经元在每个时间步同时接受一个大小为 3 的输入向量。
我的问题是:为什么hidden_size和input_size …
python machine-translation deep-learning recurrent-neural-network pytorch
假设我在 Pytorch 中有一个 CNN 模型和以下大小的 2 个输入:
注意事项:
我的问题是:CNN 如何处理两个输入中的图像?即 CNN 是否按顺序处理批次中的每个图像?或者它是否将批量大小的所有图像连接起来,然后按照通常的方式执行卷积?
我问的原因是因为:
也就是说,batch_size 的差异导致相同位置的两个输入的 CNN 输出略有不同。
如何在 Pytorch 中将字符串列表转换为字符串/字符张量?
numpy 的相关示例:
import numpy as np
mylist = ["this","is","my","list"]
np.array([mylist])
Run Code Online (Sandbox Code Playgroud)
返回:
array([['this', 'is', 'my', 'list']], dtype='<U4')
Run Code Online (Sandbox Code Playgroud)
然而,在pytorch中:
torch.tensor(mylist)
Run Code Online (Sandbox Code Playgroud)
返回:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-156-36722d81da09> in <module>
----> 1 torch.tensor(mylist)
ValueError: too many dimensions 'str'
Run Code Online (Sandbox Code Playgroud)
张量是一个多维数组,所以我假设这在 pytorch 中是可能的。
注意:这篇文章没有回答我的问题