2017-02-14 4 views
3

Привет, у кого-нибудь есть идеи, почему эта ошибка происходит? Здесь ошибкаValueError: ошибка при проверке цели модели: ожидается, что dense_4 имеет форму (None, 4), но получил массив с формой (13252, 1)

ValueError: Error when checking model target: expected dense_4 to have shape (None, 4) but got array with shape (13252, 1) 

А вот код:

from keras.models import Sequential 
from keras.layers import * 

model = Sequential() 
model.add(Cropping2D(cropping=((0,0), (50,20)), input_shape=(160 ,320, 3))) #(None, 90, 320, 3) 
model.add(Lambda(lambda x: x/127.5 - 1.)) 
model.add(Convolution2D(32, 3, 3,)) #(None, 88, 318, 32) 
model.add(Activation('relu')) 
model.add(Convolution2D(32, 3, 3)) #(None, 86, 316, 32) 
model.add(Activation('relu')) 
model.add(Flatten()) #(None, 869632) 
model.add(Dense(128)) #(None, 128) 
model.add(Activation('relu')) 
model.add(Dense(4)) #(None, 4) 
print(model.summary()) 

model.compile(loss='mse', optimizer='adam') 
model.fit(X, y, validation_split=0.2, batch_size=32, nb_epoch=3, verbose=1) 

Форма входного сигнала (X):

(13252, 160, 320, 3) 

А (у):

(13252,) 

ответ

5

Поскольку ваша сеть имеет четыре выходов, ваш у должны быть N х 4 матрицы, а не вектор длиной у N. изменения или, или последнего слой будет Dense(1)

+0

Спасибо так много! Это сработало! –

Смежные вопросы

 Смежные вопросы