Я пытаюсь создать простую нейронную сеть с Keras, но мои веса не будут обновляться после вызова fit ()
Чтобы протестировать модель, я создал простой набор данных, названный mem. mem - это набор кортежей. mem [i] [0] дает np.array размера inp_len, состоящий только из одних или только нулей.
Вот мой код:
inp_len = 5*3 + 3187*4
model = Sequential()
model.add(Dense(units=124, kernel_initializer='ones', input_shape = (inp_len,)))
model.add(LeakyReLU(alpha=0.05))
model.add(Dense(48, kernel_initializer='ones'))
model.add(LeakyReLU(alpha=0.05))
model.add(Dense(48, kernel_initializer='ones'))
model.add(LeakyReLU(alpha=0.05))
model.add(Dense(48, kernel_initializer='ones'))
model.add(LeakyReLU(alpha=0.05))
model.add(Dense(1, activation = 'sigmoid'))
model.compile(loss='binary_crossentropy', optimizer=Adam(lr=learning_rate, decay=learning_rate_decay))
batch_size = 20
batch_old = random.sample(mem, min(len(mem), batch_size))
for i_batch in range(len(batch_old)):
X = batch_old[i_batch][0].reshape(1,inp_len)
y = np.array([[X[0]]])
model.fit(X, y, epochs = 1, batch_size = 1)
Я использую 1 эпоху и с партией размер 1, потому что я хочу использовать model.predict()
в другой части кода с другим размером пакета.
Может кто-нибудь объяснить, почему model.get_weights()[0]
продолжает возвращать единицы после подгонки модели?