此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)
我想让模型真正学习而不是卡住。
答案 0 :(得分:0)
尝试再次安装它们。
但是要注意过度拟合的问题。
一种更好的方法是增加训练量。