使用 BatchNorm 层和张量流训练 Keras 模型
train Keras model with BatchNorm layer with tensorflow
我正在使用 keras 构建模型,并在 tensorflow 中编写优化代码和所有其他代码。当我使用像 Dense 或 Conv2D 这样非常简单的层时,一切都很简单。但是在我的 keras 模型中添加 BatchNormalization 层会使问题变得复杂。
由于 BatchNormalization 层在训练阶段和测试阶段表现不同,我发现我需要 K.learning_phase():True 在我的 feed_dict 中。但是以下代码效果不佳。它运行没有错误,但模型的性能并没有变得更好。
import keras.backend as K
...
x_train, y_train = get_data()
sess.run(train_op, feed_dict={x:x_train, y:y_train, K.learning_phase():True})
当我尝试使用 keras fit 函数训练 keras 模型时,效果很好。
我应该怎么做才能在 tensorflow 中使用 BatchNormalization 层训练 keras 模型?
其实我复制了这个我没见过的问题
我找到了答案here,它只是将一个特殊参数传递给 BatchNormalization 层调用
我正在使用 keras 构建模型,并在 tensorflow 中编写优化代码和所有其他代码。当我使用像 Dense 或 Conv2D 这样非常简单的层时,一切都很简单。但是在我的 keras 模型中添加 BatchNormalization 层会使问题变得复杂。
由于 BatchNormalization 层在训练阶段和测试阶段表现不同,我发现我需要 K.learning_phase():True 在我的 feed_dict 中。但是以下代码效果不佳。它运行没有错误,但模型的性能并没有变得更好。
import keras.backend as K
...
x_train, y_train = get_data()
sess.run(train_op, feed_dict={x:x_train, y:y_train, K.learning_phase():True})
当我尝试使用 keras fit 函数训练 keras 模型时,效果很好。
我应该怎么做才能在 tensorflow 中使用 BatchNormalization 层训练 keras 模型?
其实我复制了这个我没见过的问题
我找到了答案here,它只是将一个特殊参数传递给 BatchNormalization 层调用