Python 将张量附加到另一张量的每个元素上
我有一个pytorch张量:Python 将张量附加到另一张量的每个元素上,python,pytorch,Python,Pytorch,我有一个pytorch张量:x=torch.zero(2,2),还有另一个变量值张量:item=torch.tensor([[1,2],[3,4]]),我只是举个例子 我想添加项张量作为x张量的每个元素,这样 x = [[item, item], [item, item]] 所以x是一个张量,里面有张量。 我曾尝试将项直接分配给x,但出现了一个错误:运行时错误:张量的扩展大小必须与非单体维度的现有大小匹配没有看到任何pytorch本机函数,但您可以使用np.block: impor
x=torch.zero(2,2)
,还有另一个变量值张量:item=torch.tensor([[1,2],[3,4]])
,我只是举个例子
我想添加项
张量作为x张量的每个元素,这样
x = [[item, item],
[item, item]]
所以x是一个张量,里面有张量。
我曾尝试将
项直接分配给x,但出现了一个错误:运行时错误:张量的扩展大小必须与非单体维度的现有大小匹配没有看到任何pytorch
本机函数,但您可以使用np.block
:
import numpy as np
item = np.array(item) # need to convert item from tensor to ndarray
x = np.block([[item, item], [item, item]]
x = torch.from_numpy(x) # if you want to change it back to tensor
可能不是最快的,如果它真的很大,你在类型之间转换很多。注意:这样就不需要用零来初始化x
。没有看到任何pytorch
本机函数,但您可以使用np.block
:
import numpy as np
item = np.array(item) # need to convert item from tensor to ndarray
x = np.block([[item, item], [item, item]]
x = torch.from_numpy(x) # if you want to change it back to tensor
可能不是最快的,如果它真的很大,你在类型之间转换很多。注意,这样就不需要用零来初始化x
。使用,
你的target\u tensor
形状将是torch.Size([2,2,2,2])
item
tensor形状已经是torch.Size([2,2])
使用:
repeat()函数的前两个参数是x的形状,
你的target\u tensor
形状将是torch.Size([2,2,2,2])
item
tensor形状已经是torch.Size([2,2])
使用:
repeat()函数的前两个参数是x的形状只有变量支持切片赋值。源和目标之间的形状必须相同
a=tf.Variable([[1,2],[3,4]])
a.assign([[5,6], [7,8]])
print(a.numpy())
输出:
[[5,6]
[7 8]]
如果数据是非常规分配,请尝试使用RaggedSensor
输出
<tf.RaggedTensor [[1, 2], [3, 4, 5]]>
只有变量支持切片赋值。源和目标之间的形状必须相同
a=tf.Variable([[1,2],[3,4]])
a.assign([[5,6], [7,8]])
print(a.numpy())
输出:
[[5,6]
[7 8]]
如果数据是非常规分配,请尝试使用RaggedSensor
输出
<tf.RaggedTensor [[1, 2], [3, 4, 5]]>