Неправильная форма ввода для временной 1D свертки в Керасе - PullRequest
0 голосов
/ 02 февраля 2019

относительно входных форм - некоторое время использовал LSTM и у него не было проблем с ним, но теперь я попробовал сверточные слои 1D для ускорения обработки, и теперь у меня возникли проблемы - можете ли вы увидеть, в чем проблема сследующий?(Используются фиктивные данные)

Я получаю ошибку для подгонки:

ValueError: Ошибка при проверке цели: ожидается, что плотность_17 имеет 2 измерения, но получен массив с формой (400, 20, 2)

Я не вижу, что здесь не так?!

Код показан ниже

#load packages
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, GRU, 
TimeDistributed
from keras.layers import Conv1D, MaxPooling1D, Flatten, 
GlobalAveragePooling1D
from keras.layers import Conv2D, MaxPooling2D
from keras.utils import np_utils

nfeat, kernel, timeStep, length, fs = 36, 8, 20, 100, 100

#data (dummy)
data = np.random.rand(length*fs,nfeat)
classes = 0*data[:,0]
classes[:int(length/2*fs)] = 1

#make correct input shape (batch, timestep, feature)
X = np.asarray([data[i*timeStep:(i + 1)*timeStep,:] for i in 
range(0,length * fs // timeStep)])
#classes
Y = np.asarray([classes[i*timeStep:(i + 1)*timeStep] for i in 
range(0,length * fs // timeStep)])

#split into training and test set
from sklearn.model_selection import train_test_split
trainX, testX, trainY, testY = 
train_test_split(X,Y,test_size=0.2,random_state=0)

#one-hot-encoding
trainY_OHC = np_utils.to_categorical(trainY)
trainY_OHC.shape, trainX.shape

#set up model with simple 1D convnet
model = Sequential()
model.add(Conv1D(8,10,activation=’relu’,input_shape=(timeStep,nfeat)))
model.add(MaxPooling1D(3))
model.add(Flatten())
model.add(Dense(10,activation=’tanh’))
model.add(Dense(2,activation=’softmax’))

model.summary()

#compile model
model.compile(loss=’mse’,optimizer=’Adam’ ,metrics=[‘accuracy’])

#train model

 model.fit(trainX,trainY_OHC,epochs=5,batch_size=4,
 validation_split=0.2)
...