#python #keras
Вопрос:
Я новичок в keras, и я просто создаю модель для аппроксимации отображения вектора 45 измерений в вектор 20 измерений.
Мои коды таковы
x = Input(shape=(45))
y = Dense(90)(x)
y = Dense(40)(y)
z = Dense(20)(y)
predictor = Model(x,z)
predictor.compile(optimizer='adam')
predictor.summary()
def train():
X = []
Y = []
f = open('./x.txt', 'r')
line = f.readline()
while line:
X.append(eval(line))
line = f.readline()
f.close()
f = open('./y.txt', 'r')
line = f.readline()
while line:
Y.append(eval(line))
line = f.readline()
f.close()
X=np.array(X).reshape(-1,45)
Y=np.array(Y).reshape(-1,20)
predictor.fit(X, Y, batch_size=32, epochs=5)
И я получил «Ошибку значения: для любой переменной не предусмотрено градиентов: [«плотный/ядро:0», «плотный/смещение:0», «плотность 1/ядро:0», «плотность 1/смещение:0», «плотность 2/ядро:0», «плотность 2/смещение:0″].»
Результатом summary()
является
Model: "functional_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) [(None, 45)] 0
_________________________________________________________________
dense (Dense) (None, 90) 4140
_________________________________________________________________
dense_1 (Dense) (None, 40) 3640
_________________________________________________________________
dense_2 (Dense) (None, 20) 820
=================================================================
Total params: 8,600
Trainable params: 8,600
Я не уверен в том, в чем моя ошибка
Комментарии:
1. Добавьте функцию потерь здесь:
predictor.compile(optimizer='adam')
=>predictor.compile(optimizer='adam', loss='some_loss_function')
Ответ №1:
Это потому, что вы не предоставили функцию потерь в методе компилятора.
Итак, изменись вот так:
#predictor.compile(optimizer='adam')
predictor.compile(optimizer='adam', loss='some_loss_function')`
Функция потерь, которую вы выбираете, зависит от типа вашей проблемы. Если это регрессия, вы можете использовать mse
, или это классификация, которую вы можете использовать categorical_crossentropy
.