Я обучил свой автоэнкодер на 100 эпох и размер партии = 32.
Когда я использую model.fit (), я не получаю напрямую общую точность и потери за эпоху, но вижу точность и потери для различных уровней в моей сети, таких как dens_1, dens_2, reshape_1 и т. Д. Поэтому я не уверен, что сеть действительно была обучена в течение 100 эпох.
Может кто-нибудь сказать мне, как я могу отслеживать общую точность / потерю сети за эпоху? Моя сеть сложна с 2 входами, 2 выходами и несколькими связанными слоями между ними.
def all_in_one_model(embeddedOutput,charMatrixList):
embeddedInput = Input(shape=(1,400))
#charInput = Input(shape=(40774,32,30))
charInput = Input(shape=(32,30,1))
p20 = Sequential()(charInput)
p21 = Conv2D(32, (3, 3), strides=(1,1) , padding="same", activation="relu",input_shape=(32,30,1))(p20)
print('p21 shape')
print(p21.shape)
#pp = Reshape((40774,32*32),name='reshape_1')(p21)
pp = Reshape((32,960))(p21)
p22 = LSTM(16, return_sequences=True,input_shape=(32,32))(pp)
p23 = LSTM(16, return_sequences=True)(p22)
p24 = Flatten()(p23)
print('p24 shape')
print(p24.shape)
p10 = Sequential()(embeddedInput)
p11 = LSTM(64, return_sequences=True, input_shape=(1,400))(p10) #Must be (400,1)
p12 = LSTM(128, return_sequences=True)(p11)
p13 = Flatten()(p12)
print('p13 shape')
print(p13.shape)
x = Concatenate()([p13, p24])
#print(x.shape)
y = Dense(400,activation='relu',name = 'dense_1')(x)
print('y shape')
print(y.shape)
pp = Reshape((1,400),name='reshape_2')(y)
embOut = Dense(400,activation='relu',name = 'dense_2')(pp)
print('Emb out shape')
print(embOut.shape)
#qq = Reshape((40774,960))(y)
charMatOut = Dense(960,activation='relu',name = 'dense_3')(y)
print('Char matrix output shape')
print(charMatOut.shape)
#charout = np.reshape(np.array(charMatOut),(32,30,1))
charout = Reshape((32,30,1),name='reshape_3')(charMatOut)
print('Reshaped Char matrix output shape')
print(charout.shape)
model = Model(inputs=[embeddedInput, charInput], outputs=[embOut, charout])
model.summary()
model.compile(loss='mean_squared_error', optimizer='adam',metrics=['accuracy'])
plot_model(model, to_file = "model.png")
return model
model = all_in_one_model(embeddedOutput,charMatrixList)
model.fit([npeo, npcm], [npeo, npcm], epochs=100, batch_size=32,verbose=1)
Эпоха 1/100
40774/40774 [====================================] - 188 с 5 мс / шаг - потеря: 0,0031 - плотность_2_ потерь: 8,3277e- 04 - reshape_3_loss: 0.0022 - dens_2_acc: 0.0020 - reshape_3_acc: 0.9976- ETA: 17:16 - потери: 0.0058 - dens_2_loss: 8.3114e-04 - reshape_3_loss: 0.0050 - плотность_2_acc: 0,0104 - reshape_3_acc: 0,99: 0,90: 0,90: 0,90: 0,90: 0,90: 0,90 : 0,0058 - плотность_2_потоков: 8.3613e-04 - reshape_3_loss: 0,0050 - плотность_2_акк: 0,0024 - перепрограммируемых_3_acc: 0,9948 992/40774 [......................... .....] - ETA: 5:28 - убыток: 0,0058 - плотность_2_ потерь: 8,3601e-04 - изменение формы_3_0: 0,0050 - плотность_2_acc: 0,0020 - reshape_3_acc: 0,9948 - расчетное время: 4:28 - потери: 0,0057 - плотность_2_ потери: 8,3579e -04 - reshape_3_loss: 0,0049 - dens_2_acc: 0,0027 - reshape_3_acc: 0,9948 - ETA: 4:16 - потери: 0,0057 - dens_2_loss: 8,3530e-04 - reshape_3_loss: 0,0048 - плотность_2_acc: 0,0024 - Reshape_3_49_ac: 0 потеря: 0,0056 - плотность_2_отхода: 8,3492e-04 - изменение формы_3_отхода: 0,0047 - плотность_2_акк .: 0,0023 - изменение формы_3_акк .: 0,9949 2688/40774