如何在PyTorch中为数字数据正确实现一维CNN?

乙醛

我有一个500x2000的矩阵,其中每一行代表一个个体,每一列代表对该个体的某些特定质量的度量。我使用的批处理大小为64,因此网络每个周期的输入实际上是64x2000矩阵。我正在尝试在PyTorch中构建CNN,以便根据一组这些度量对个人进行分类。但是,我偶然发现了卷积层的参数。

以下是我对简单卷积神经网络的当前定义。

class CNNnet(nn.Module)
    def __init__(self):
        self.conv1 = nn.Conv1d(2000, 200, (1,2), stride=10)
        self.pool = nn.MaxPool1d(kernel_size = (1, 2), stride = 2)

        self.fc1 = nn.Linear(64, 30)
        self.fc2 = nn.Linear(30, 7)

    def forward(self, x):
        x = x.view(64, 2000, 1)
        x = F.relu(self.conv1(x))
        x = self.pool(x)
        x = F.relu(self.fc1(x))
        x = self.fc2(x)
        return x

尝试训练此模型会产生以下错误:

“ RuntimeError:4维权重为200 2000 1 2的预期4维输入,但尺寸为[64,2000,1]的3维输入”。

我对为什么期望使用4D 200x2000x1x2矩阵感到困惑(输出通道的数量与输入无关吗?为什么末尾有2?)。

我的问题是在处理一维数据时编写CNN(特别是卷积层)的正确语法或方法是什么?任何帮助是极大的赞赏。

大卫·S

因此,在一维情况下的内核大小仅仅是一个向量。因此,如果您想要的内核大小为“ 1X2”,则需要指定“ 2”。在二维情况下2表示内核大小为“ 2X2”。

您给了一个包含2个值的元组,因此您使用了2种内核类型,每种都会创建自己的通道

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Rust中为延迟计算的值正确实现缓存结构?

如何在CSS中为iframe正确实现margin-left?

如何在LSTM网络之前实现一维CNN

如何在pytorch中实现低维嵌入层

如何在Scala中正确实现自定义的类似于数字的类?

如何在PowerShell中为二维数据集实现查找表?

如何在oracle数据库中正确实现多对多关系?

如何在张量流的自定义数据集中正确实现next_batch?

如何在pytorch中堆叠一维向量

如何在实体框架中正确实现多对一结构?

ReactJS:如何在一个动作中正确实现react-cookie?

如何使用PyTorch正确实施数据重组?

如何正确实现以对象为键的Map?

我想从字符串中获取数字数据。如何在python中做到这一点?

如何正确实现不相交集数据结构以在Python中查找跨林?

如何在Java中测试类是否正确实现了Serializable(不仅是Serializable的实例)

如何在Web API 2中正确实现异步

如何在自己的文件中的React Native中正确实现自定义组件?

如何在Angular2中正确实现detectChanges()?

如何在Nuxt.js中的图标链接上正确实现悬停效果

如何在Swift中的Direction Array Reduction挑战中正确实现堆栈

如何在Swift中的不同视图控制器之间正确实现协议和委托?

如何在Windows Phone中正确实现试用体验

如何在 Java 中正确实现概率?

如何在PHP中正确实现Microsoft Text to Speech

如何在Python中正确实现方法级联-链接?

如何在Promise中正确实现mongodb async / await?

如何在Android中正确实现AsyncTask?

如何在C中正确实现strcpy?