如何解决了解Conv1D密集层一维输入的keras input_shape
伙计!
我尝试在keras
中实现我自己的第一个dl-net,这将是一个自动编码器(希望能够进行降噪和堆叠)。但是我在输入层的输入形状格式上遇到了麻烦,它可以是Conv1D
或Dense
层(目前是Dense
层,因为我希望可以解决此问题)-我还尝试了pytorch
,但这也不能解决我的问题。
潜在的问题是,我感觉不到输入的形状参数及其结构。对于图像,您可以在整个互联网上找到很好的逻辑解释。但是,由于我使用的是一维数据,因此无法在此处应用这些技术-Dense
/ Conv1D
API也无法正确回答我的问题。
我有 7000个样本,每个样本都由一个 500个整数的一维数组表示,那就是没有其他要素尺寸或属性-仅个通道如果我理解正确。因此input_shape=(,500)
应该可以正常工作,因为我不必声明批量大小。
但这不起作用,我得到的消息是我的传入数据和形状不匹配。
也许有人可以清除?也许我的输入数据是形错误的-numpy输入应该是什么样?还是我的图层配置不正确?
提前谢谢!我真的很想解决这个问题,并且已经尝试了几种重塑或输入形状定义的方法-不幸的是没有任何效果。
解决方法
您只是忘记了“渠道”维度。就像图像一样,序列也可以具有通道。
例如,您可以运行以下代码:
import tensorflow as tf
layer = tf.keras.layers.Conv1D(input_shape=(500,),kernel_size=3,filters=2)
sample = tf.ones((1,500,1),dtype=tf.float32) # (bs,input_shape,channels)
out = layer(sample) # out.shape will be (1,498,2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。