Python 它是如何在Keras中的Conv1d中使用输入_形状变量的?

Python 它是如何在Keras中的Conv1d中使用输入_形状变量的?,python,tensorflow,keras,conv-neural-network,Python,Tensorflow,Keras,Conv Neural Network,再见, 我在Keras上与CNN 1d合作,但我在输入形状变量方面遇到了很多麻烦 我有一个100个时间步长的时间序列和5个带有布尔标签的功能。我想训练一个CNN 1d,它可以使用长度为10的滑动窗口。这是我写的一段非常简单的代码: 从keras.models导入 从keras.layers导入稠密,Conv1D 将numpy作为np导入 N_特征=5 N_时间步长=10 X=np.random.rand((100,N_特征)) Y=np.random.randint(0,2,大小=100) #有

再见, 我在Keras上与CNN 1d合作,但我在输入形状变量方面遇到了很多麻烦

我有一个100个时间步长的时间序列和5个带有布尔标签的功能。我想训练一个CNN 1d,它可以使用长度为10的滑动窗口。这是我写的一段非常简单的代码:

从keras.models导入
从keras.layers导入稠密,Conv1D
将numpy作为np导入
N_特征=5
N_时间步长=10
X=np.random.rand((100,N_特征))
Y=np.random.randint(0,2,大小=100)
#有线电视新闻网
model.Sequential()
添加(Conv1D(filter=32,kernel\u size=N\u TIMESTEPS,activation='relu',input\u shape=N\u特性
model.add(密集型(1,激活='sigmoid'))
compile(loss='classifical_crossentropy',optimizer='adam',metrics=['accurity'])
我的问题是,我得到了以下错误:

文件“”,第2行,在
添加(Conv1D(filter=32,kernel\u size=10,activation='relu',input\u shape=N\u FEATURES))
TypeError:\uuuu init\uuuu()至少接受3个参数(给定3个)
我还尝试将以下值传递到输入_形状:

input_shape=(无,N_特征)
输入形状=(1,N个特征)
输入形状=(N个特征,无)
输入_形状=(N_特征,1)
输入_形状=(N_特征,)
您知道代码有什么问题吗?或者总体来说,您能否解释Keras CNN中input_shape变量背后的逻辑

疯狂的是,我的问题与以下问题相同:

但我无法用帖子中给出的解决方案来解决这个问题

Keras版本为2.0.6-tf

谢谢

这应该可以:

from keras.models import Sequential
from keras.layers import Dense, Conv1D
import numpy as np

N_FEATURES=5
N_TIMESTEPS=10
X = np.random.rand(100, N_FEATURES)
Y = np.random.randint(0,2, size=100)

# Create a Sequential model
model = Sequential()
# Change the input shape to input_shape=(N_TIMESTEPS, N_FEATURES)
model.add(Conv1D(filters=32, kernel_size=N_TIMESTEPS, activation='relu', input_shape=(N_TIMESTEPS, N_FEATURES)))
# If it is a binary classification then you want 1 neuron - Dense(1, activation='sigmoid')
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

请查看每行代码前的注释。此外,
Conv1D
期望的输入形状是
(时间步长、功能大小、每时间步长)
。您的代码的翻译是
(N\u时间步长、N\u功能)

很多,密集的内容是一个输入错误。它看起来像是“过滤器”和“过滤器”有区别,但我不知道为什么。在Conv1D文档中,正确的参数是“fitlers”,因此我希望得到一条关于它的错误消息。但现在它编译正确了。