标签: tensor

在Google Colab中进行调试

我在google colab中运行以下代码片段:

%debug
# Create tensors of shape (10, 3) and (10, 2).
x = torch.randn(10, 3)
y = torch.randn(10, 2)

# Build a fully connected layer.
linear = nn.Linear(3, 2)
print ('w: ', linear.weight)
print ('b: ', linear.bias)
Run Code Online (Sandbox Code Playgroud)

我希望调试一段代码(逐行逐步)以了解发生了什么.我想进入函数nn.Linear.

但是,当我单步执行时,它根本不会进入该功能.有没有办法逐行逐步通过nn.Linear?另外,我究竟如何在nn.Linear中设置断点?此外,我希望逐行逐步浏览片段.但是,如图所示,步骤命令也会自动逐步执行并执行print语句.

Step_though_collab

python deep-learning pytorch tensor google-colaboratory

10
推荐指数
2
解决办法
3930
查看次数

InvalidArgumentError:当前图形与检查点图形不匹配

所以我基本上将这个变换器实现用于我的项目:https://github.com/Kyubyong/transformer.它最初编写的德语到英语翻译效果很好,我修改了处理python脚本,以便为我想要翻译的语言创建词汇表文件.这似乎工作正常.

但是,当涉及到培训时,我收到以下错误:

InvalidArgumentError(请参阅上面的回溯):从检查点恢复失败.这很可能是由于当前图表与检查点图表不匹配造成的.请确保您没有根据检查点更改预期的图表.原始错误:

分配要求两个张量的形状匹配.lhs shape = [9796,512] rhs shape = [9786,512] [[{{node save/Assign_412}} =分配[T = DT_FLOAT,_class = ["loc:@ encoder/enc_embed/lookup_table"],use_locking = true,validate_shape = true,_device ="/ job:localhost/replica:0/task:0/device:CPU:0"](encoder/enc_embed/lookup_table/Adam_1,save/RestoreV2:412)]]

现在我不知道为什么我收到上述错误.我还恢复了原始代码,从德语翻译成英语,现在我得到了相同的错误(除了lhs和rhs张量形状当然不同),在它工作之前!

关于为什么会发生这种情况的任何想法?

提前致谢

编辑:这是有问题的特定文件在这里,train.py当它运行:https://github.com/Kyubyong/transformer/blob/master/train.py 什么也没有比一个事实,即词汇修饰等为de和en加载的是不同的(它们实际上是单个字母作为单词的词汇文件).然而,正如我所提到的那样,即使回到流行的工作示例,我也会得到与不同的lhs和rhs尺寸相同的错误.

python transformer-model tensorflow tensor

10
推荐指数
1
解决办法
1783
查看次数

为什么dim=1 在torch.argmax 中返回行索引?

我正在argmax研究 PyTorch 的功能,其定义为:

torch.argmax(input, dim=None, keepdim=False)
Run Code Online (Sandbox Code Playgroud)

考虑一个例子

a = torch.randn(4, 4)
print(a)
print(torch.argmax(a, dim=1))
Run Code Online (Sandbox Code Playgroud)

在这里,当我使用 dim=1 而不是搜索列向量时,该函数会搜索行向量,如下所示。

print(a) :   
tensor([[-1.7739,  0.8073,  0.0472, -0.4084],  
        [ 0.6378,  0.6575, -1.2970, -0.0625],  
        [ 1.7970, -1.3463,  0.9011, -0.8704],  
        [ 1.5639,  0.7123,  0.0385,  1.8410]])  

print(torch.argmax(a, dim=1))  
tensor([1, 1, 0, 3])
Run Code Online (Sandbox Code Playgroud)

就我的假设而言,dim = 0 代表行,dim = 1 代表列。

python matrix argmax pytorch tensor

10
推荐指数
1
解决办法
5343
查看次数

在tf.nn.relu中"relu"代表什么?

在其API文档中,它显示"Computed rectified linear".

是Re(ctified)L(inear)......那么U是什么?

tensorflow tensor

9
推荐指数
2
解决办法
1万
查看次数

如何在 Keras 中调试自定义损失函数?

我用参数创建了自定义损失函数。

def w_categorical_crossentropy(weights):
  def loss(y_true, y_pred):
  print(weights)
  print("----")
  print(weights.shape)
  final_mask = K.zeros_like(y_pred[:, 0])
  y_pred_max = K.max(y_pred, axis=1)
  y_pred_max = K.reshape(y_pred_max, (K.shape(y_pred)[0], 1))
  y_pred_max_mat = K.cast(K.equal(y_pred, y_pred_max), K.floatx())
  return K.categorical_crossentropy(y_pred, y_true)
return loss
Run Code Online (Sandbox Code Playgroud)

现在,我需要控制权重参数值,但打印功能无法正常工作。有没有办法打印权重值?

printing debugging callback keras tensor

9
推荐指数
1
解决办法
3138
查看次数

PyTorch torch.max over multiple dimensions

Have tensor like :x.shape = [3, 2, 2].

import torch

x = torch.tensor([
    [[-0.3000, -0.2926],[-0.2705, -0.2632]],
    [[-0.1821, -0.1747],[-0.1526, -0.1453]],
    [[-0.0642, -0.0568],[-0.0347, -0.0274]]
])
Run Code Online (Sandbox Code Playgroud)

我需要.max()接管第二和第三维。我期待一些这样的[-0.2632, -0.1453, -0.0274]输出。我尝试使用: x.max(dim=(1,2)),但这会导致错误。

python max multidimensional-array pytorch tensor

9
推荐指数
2
解决办法
6959
查看次数

了解 PyTorch LSTM 的输入形状

这似乎是 PyTorch 中 LSTM 最常见的问题之一,但我仍然无法弄清楚 PyTorch LSTM 的输入形状应该是什么。

即使遵循了几个帖子(123)并尝试了解决方案,它似乎也不起作用。

背景:我已经对一批大小为 12 的文本序列(可变长度)进行了编码,并且使用pad_packed_sequence功能对序列进行了填充和打包。MAX_LEN对于每个序列是 384,序列中的每个标记(或单词)的维度为 768。因此,我的批处理张量可能具有以下形状之一:[12, 384, 768][384, 12, 768]

该批次将是我对 PyTorch rnn 模块(此处为 lstm)的输入。

根据用于PyTorch文档LSTMs,其输入尺寸是(seq_len, batch, input_size)我的理解如下。
seq_len- 每个输入流中的时间步数(特征向量长度)。
batch- 每批输入序列的大小。
input_size- 每个输入标记或时间步长的维度。

lstm = nn.LSTM(input_size=?, hidden_size=?, batch_first=True)

这里的确切值input_sizehidden_size值应该是什么?

python lstm pytorch tensor

9
推荐指数
1
解决办法
6422
查看次数

PyTorch 张量的加权平均值

我有两个形式为 [y11, y12] 和 [y21, y22] 的 Pytorch 张量。如何获得两个张量的加权平均值?

python numpy weighted-average pytorch tensor

9
推荐指数
1
解决办法
1万
查看次数

在PyTorch中使用张量索引多维张量

我有以下代码:

a = torch.randint(0,10,[3,3,3,3])
b = torch.LongTensor([1,1,1,1])
Run Code Online (Sandbox Code Playgroud)

我有一个多维索引,b并希望用它来选择一个单元格a.如果b不是张量,我可以这样做:

a[1,1,1,1]
Run Code Online (Sandbox Code Playgroud)

哪个返回正确的单元格,但是:

a[b]
Run Code Online (Sandbox Code Playgroud)

不起作用,因为它只选择了a[1]四次.

我怎样才能做到这一点?谢谢

pytorch tensor

8
推荐指数
2
解决办法
5771
查看次数

Pytorch 0.4.0:在CUDA设备上有三种方法可以创建张量.它们之间有什么区别吗?

我以第三种方式失败了.t3还在CPU上.不知道为什么.

a = np.random.randn(1, 1, 2, 3)

t1 = torch.tensor(a)
t1 = t3.to(torch.device('cuda'))

t2 = torch.tensor(a)
t2 = t2.cuda() 

t3 = torch.tensor(a, device=torch.device('cuda'))
Run Code Online (Sandbox Code Playgroud)

pytorch tensor

8
推荐指数
1
解决办法
2791
查看次数