为什么我使用TensorFlow2.0训练的时候loss的变化那么奇怪?

我使用tf2.0搭建了一个deepfm模型用来做一个二分类预测。

训练过程中train loss一直在下降,val loss却一直在上升,并且训练到一半内存就不够用了,这是怎么一回事?

Train on 19532 steps, validate on 977 steps

Epoch 1/5
19532/19532 [==============================] - 549s 28ms/step - loss: 0.4660 - AUC: 0.8519 - val_loss: 1.0059 - val_AUC: 0.5829

Epoch 2/5
19532/19532 [==============================] - 522s 27ms/step - loss: 0.1861 - AUC: 0.9787 - val_loss: 1.7618 - val_AUC: 0.5590

Epoch 3/5
17150/19532 [=========================>....] - ETA: 1:06 - loss: 0.0877 - AUC: 0.9951

Process finished with exit code 137

还有个问题,我在设计过程中关闭了eager模式,必须使用了下面代码进行初始化:

sess.run([tf.compat.v1.global_variables_initializer(), tf.compat.v1.tables_initializer()])

但我的代码中使用了其他的初始化方法:

initializer = tf.keras.initializers.TruncatedNormal(stddev=stddev, seed=29)

regularizer = tf.keras.regularizers.l2(l2_reg)

....

dnn_hidden_layer_3 = tf.keras.layers.Dense(64, activation='selu', kernel_initializer=initializer, kernel_regularizer=regularizer)(dnn_hidden_layer_2)

....

我这样做他还是按我定义的初始化方法那样初始化吗?

本人小白,在这里先跪谢大家了!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问