如何解决Kymatio散射变换1D错误'输入必须是连续的
我开始使用Kymatio库,以便将散射变换用作一维信号特征的提取器。最终的想法是对一维信号进行分类。
我遵循了链接上的示例
https://www.kymat.io/gallery_1d/plot_classif_torch.html#sphx-glr-gallery-1d-plot-classif-torch-py
基于此示例,我导入了三个.mat文件,其中包含来自COOLL数据集(https://coolldataset.github.io/)的已编译数据。导入了两个变量:
x2包含设备电流的值。 x2是具有840行和4 * 8192列的矩阵。 y2包含标签列表。它有840个位置,每个设备一个。
我正在尝试为x2包含的每个信号计算Scattering1D变换的系数。为此,我正在执行以下操作:
T=32768;
J=8;
Q=12;
if use_cuda:
scattering.cuda()
x2 = x2.cuda()
y2 = y2.cuda()
Sx_all = scattering.forward(x2)
执行此操作时,出现以下错误:
RuntimeError Traceback (most recent call last)
<ipython-input-62-26c538d90a70> in <module>()
1 #Sx_all = scattering(x2)
----> 2 Sx_all = scattering.forward(x2)
1 frames
/usr/local/lib/python3.6/dist-packages/kymatio/backend/torch_backend.py in input_checks(x)
9
10 if not x.is_contiguous():
---> 11 raise RuntimeError('The input must be contiguous.')
12
13 def _is_complex(x):
RuntimeError: The input must be contiguous.
从https://www.kymat.io/gallery_1d/plot_classif_torch.html#sphx-glr-gallery-1d-plot-classif-torch-py的示例中运行原始程序时,不会出现此错误。
错误消息“输入必须是连续的”到底是什么意思,您如何建议我解决问题?我尝试阅读图书馆文档,但仍然没有解决问题。
解决方法
我相信我已经使用tensor.contiguous()
找到了解决方案。
x2 = x_all_import['x_all']
x2 = torch.from_numpy(x2)
x2 = x2.contiguous();
y2 = y_all_import['y_all']
y2 = y2.flatten()
y2 = torch.from_numpy(y2)
y2 = y2.contiguous();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。