当前位置:网站首页>torch.tensor拼接与list(tensors)
torch.tensor拼接与list(tensors)
2022-06-25 12:10:00 【燕策西】
tensor&list[tensors]
Construct list(tensors)
创建一个包含张量的列表,以及2个张量如下:
import toroch
a = [torch.tensor([[0.7, 0.3], [0.2, 0.8]]),
torch.tensor([[0.5, 0.9], [0.5, 0.5]])]
b = torch.tensor([[0.1, 0.9], [0.3, 0.7]])
c = torch.tensor([[0.1, 0.9, 0.5], [0.3, 0.7, 0.0]])
To stack list(tensors)
堆叠之前对stack函数做一点说明。Stack操作,先升维,再扩增。参考stack与cat。对张量进行堆叠操作,要求张量的shape一致:
stack1 = torch.stack(a) # default: dim=0, [2, 2, 2]
print(stack1)
stack2 = torch.stack((stack1, b), 0)
print(stack2)
output:
tensor([[[0.7000, 0.3000],
[0.2000, 0.8000]],
[[0.5000, 0.9000],
[0.5000, 0.5000]]])
RuntimeError:
stack expects each tensor to be equal size, but got [2, 2, 2] at entry 0 and [2, 2] at entry 1
To concatenate list(tensors)
c = torch.cat([torch.stack(a), b[None]], 0)
# (2, 2, 2), (1, 2, 2) ⇒ (3, 2, 2)
print(c)
Output:
tensor([
[[0.7000, 0.3000],
[0.2000, 0.8000]],
[[0.5000, 0.9000],
[0.5000, 0.5000]],
[[0.1000, 0.9000],
[0.3000, 0.7000]]])
但是,如果要使用stack替代上述cat操作,则会报错,因为stack要求两个输入的shape完全相同,而cat允许非拼接部分不同。除了torch.cat以外,也可以使用list.append完成以上操作。
a.append(b)
print(a)
a.append(c)
print(a)
[tensor([[0.7000, 0.3000],[0.2000, 0.8000]]),
tensor([[0.5000, 0.9000], [0.5000, 0.5000]]),
tensor([[0.1000, 0.9000], [0.3000, 0.7000]])]
[tensor([[0.7000, 0.3000], [0.2000, 0.8000]]),
tensor([[0.5000, 0.9000], [0.5000, 0.5000]]),
tensor([[0.1000, 0.9000], [0.3000, 0.7000]]),
tensor([[0.1000, 0.9000, 0.5000],
[0.3000, 0.7000, 0.0000]])]
注意到,list.append()不仅可以堆叠同形状的tensors,而且可以容纳不同shape的tensor,是一个tensor容器!但是本人在使用过程中出现了以下 low-level 错误,请读者谨防:
d = []
d.append(a), d.append(b)
print(d)
e = a.append(b)
print(e) # 空的!
Output:
[[tensor([[0.7000, 0.3000],
[0.2000, 0.8000]]), tensor([[0.5000, 0.9000],
[0.5000, 0.5000]])], tensor([[0.1000, 0.9000],
[0.3000, 0.7000]])]
None
list_x.append 过程中不会返回新的东西,只能从list_x中获取。
完结,撒花。
边栏推荐
- PHP takes the difference set of two arrays
- Go novice exploration road 2
- yolov5训练使用的负样本图片
- Render values to corresponding text
- Initialize the project using the express framework
- (6) Pyqt5--- > window jump (registration login function)
- Draw the satellite sky map according to the azimuth and elevation of the satellite (QT Implementation)
- Penetration tool environment - installing sqli labs in centos7 environment
- flutter 收到推送后自动消失问题
- Go novice exploration road 1
猜你喜欢

MySQL and excel tables importing database data (Excel for MySQL)

Render values to corresponding text

ECSHOP quickly purchases goods, simplifies the shopping process, and improves the user experience through one-step shopping

Zhangxiaobai's way of penetration (VIII) - detailed operation steps of SQL injection - Boolean blind injection of blind injection

Embedded software development written examination and interview notes (latest update: February 17, 2022)

laravel 9

Swagger document generated by node project API in vscode

ECSHOP video list_ ECSHOP uploading video, video classification, video list playing video function

K8s, docker compose install MySQL 8.0.18

2021-09-28
随机推荐
Today, I will explain to you what is DFI and its development prospects
PHP parsing QR code content
JS SMS countdown implementation (simple code)
Match regular with fixed format beginning and fixed end
Slice() and slice() methods of arrays in JS
QT TCP UDP network communication < theory >
Figure explanation of fiborache sequence
地理空间搜索 ->R树索引
Huile optimization system -- sharing of secondary development source code of huile optimization app system
node. JS architecture optimization: reverse proxy and cache service
Happy shopkeeper source code -- Introduction to happy shopkeeper system development mode
Initialize the project using the express framework
How can we differ LEFT OUTER JOIN vs Left Join [duplicate]
Some fields are ignored in tp6 query
(5) Pyqt5 ---- another method of connecting signals and slots
laravel 9
ECSHOP video list_ ECSHOP uploading video, video classification, video list playing video function
(6) Pyqt5--- > window jump (registration login function)
Spicy food advertising e-commerce system development function and spicy food advertising e-commerce app system development source code sharing
线上服务应急攻关方法论