[英]Preblem in shape of data with Conv1D in Keras
I'm learning Keras
, and I'm trying to classify signals according to their frequencies. 我正在学习
Keras
,并且正在尝试根据信号的频率对其进行分类。
So for beginning my code is like that: 因此,开始我的代码是这样的:
import numpy as np
from keras.models import Sequential
from keras.layers import Conv1D
from keras.layers import AveragePooling1D
from keras.layers import Dense
from keras.layers import Dropout
#DATA
time=np.arange(0,20,0.05)
signal=np.sin(time)
out=np.array([1,0,0])
#MODEL
model = Sequential()
model.add(Conv1D(4, 60, padding='same', activation='relu',input_shape=(400,1)))
model.add(AveragePooling1D(pool_size=5, strides=None, padding='valid'))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(3, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='Adam', metrics=['accuracy'])
history = model.fit(signal, out)
and I have this error. 我有这个错误。
builtins.ValueError: Error when checking input: expected conv1d_1_input to have 3 dimensions, but got array with shape (400, 1)
but I don't understand where the problem is. 但我不明白问题出在哪里。
try reshaping your data like this: 尝试像这样重塑数据:
history = model.fit(signal.reshape(1,400,1), out.reshape(1,3))
edit 编辑
model.fit()
expects arrays of input and outputs and not a single input and output. model.fit()
需要输入和输出的数组,而不是单个输入和输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.