如何使损失改变?

时间:2019-08-25 05:21:11

标签: python tensorflow keras autoencoder decoder

此NN的损失停留在3.7666,但我无法说出原因。我正在用大约50个训练样本进行测试,所以增加这个值可以帮助减少损失吗?

inp = open('train.csv',"rb")
X = pickle.load(inp)
X = X/255.0
X = np.array(X)
X = np.reshape(X,(-1,25425))


input_img =tf.keras.layers.Input(25425,)
encoded1 = tf.keras.layers.Dense(750,activation=tf.nn.relu)(input_img)
encoded2 = tf.keras.layers.Dense(50,activation=tf.nn.relu)(encoded1)
decode_encoder = tf.keras.layers.Dense(750,activation=tf.nn.relu)(encoded2)
decoded = tf.keras.layers.Dense(25425, activation='softmax')(decode_encoder)
# The input of the autoencoder is the image (input_img), and the output is the decoder layer (decoded)
autoencoder = tf.keras.Model(input_img, decoded)

encoder = tf.keras.Model(input_img, encoded2)

encoded_input = tf.keras.layers.Input(shape=(50,))
# The decoded only consists of the last layer
decoder_layer = autoencoder.layers[-2](encoded_input)
# The input to the decoder is the vector of the encoder which will be fed (using encoded_input), the output is the last layer of the network (decoder_layer)
decoder = tf.keras.Model(encoded_input, decoder_layer)

autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
autoencoder.fit(X, X, epochs=50, shuffle=True)

我想让模型真正学习而不是卡住。

1 个答案:

答案 0 :(得分:0)

尝试再次安装它们。

但是要注意过度拟合的问题。

一种更好的方法是增加训练量。