嗨,我有一个问题,关于如何从BI-LSTM模块的输出中收集正确的结果。
假设我有一个10长度的序列输入到具有100个隐藏单元的单层LSTM模块中:
lstm = nn.LSTM(5, 100, 1, bidirectional=True)
Run Code Online (Sandbox Code Playgroud)
output
形状如下:
[10 (seq_length), 1 (batch), 200 (num_directions * hidden_size)]
# or according to the doc, can be viewed as
[10 (seq_length), 1 (batch), 2 (num_directions), 100 (hidden_size)]
Run Code Online (Sandbox Code Playgroud)
如果我想同时获得两个方向上的第三个(1-索引)输入输出(两个100维矢量),我该如何正确执行呢?
我知道output[2, 0]
会给我一个200维的向量。这个200个暗淡的向量代表两个方向上的第三个输入的输出吗?
令我困扰的是,当进行反向进给时,从第8个(1-索引)输入计算出第三个(1-索引)输出矢量,对吗?
pytorch会自动处理此问题并考虑方向分组输出吗?
谢谢!
我正在学习Apple的Metal,试图进行一些GPU计算。
我检查了Apple给出的矩阵乘法示例。有一点我不明白。
// Number of rows in matrices A and C.
@property (nonatomic) uint16_t m;
// Number of columns in matrix A; number of rows in matrix B.
@property (nonatomic) uint16_t n;
// Number of columns in matrices B and C.
@property (nonatomic) uint16_t k;
// Output matrix (padded) C row count
@property (nonatomic, readonly) uint16_t M;
// Output matrix (padded) C column count
@property (nonatomic, readonly) uint16_t K;
// Output matrix C = …
Run Code Online (Sandbox Code Playgroud)