pytorch - 如何在pytorch中将400个样本和5000个数据点的信号数据集转换为[400,1,5000]的张量?
问题描述
我有 400 个传感器记录,每个记录的长度为 5000。我想将其转换为 [400,1,5000] 或 [batch_size, input_channels, signal_length] 的张量,用于 ML 问题,以使用 pytorch 训练 1DCNN 网络nn.Conv1d。
解决方案
此操作通常称为解压缩维度。有多种方法可以实现这一点,或者使用显式重塑,或者使用切片技巧。
使用
torch.Torch.unsqueeze
, 要么不合适:>>> x.unsqueeze(dim=1) # won't affect x
或就地使用
torch.Tensor.unsqueeze_
:>>> x.unsqueeze_(dim=1) # will mutate x
使用索引:
>>> x[:, None] # will insert a singleton at dim=1
用 重塑张量
torch.Tensor.reshape
:>>> x.reshape(len(x), 1, -1)
这不是推荐的方法,因为它不能一概而论。在我看来,你不应该使用
reshape
或者view
如果你实际上并没有重塑张量。
推荐阅读
- c - 如何初始化大小由 argc 和 argv 确定的二维数组?
- javascript - 如何比较嵌套数组中的元素
- java - 检测编号表上的缺失记录
- c - 短到字符铸造
- java - 使用 .toArray() 将 ArrayList 转换为 Int [] 数组?或者...?
- angular - 根据位置找出给定数字的小数分隔符
- visual-studio-code - How can I remove this Git helper button bar in VSCode?
- python - Load data from Google Datastore to Google Cloud ML Engine
- javascript - 如何“要求”一个 xml 文件(由 webpack 加载)以读取 javascript 中的 xml 内容
- oracle - 通过脚本动态重命名索引和约束