我正在努力将Keras模型转换为TensorFlow估计器。我收到以下错误:


  AttributeError:类型对象“ Dense”没有属性“ from_config”


这是我的代码:

from tensorflow import keras
import tensorflow as tf
from keras.models import Sequential
from keras.layers import Dense

classifier = keras.models.Sequential()
classifier.add(tf.layers.Dense(units = 6, kernel_initializer = keras.initializers.he_uniform(), activation = tf.nn.relu, input_shape =(11,)))
classifier.add(tf.layers.Dense(units = 6, kernel_initializer = keras.initializers.he_uniform(), activation = tf.nn.relu))
classifier.add(tf.layers.Dense(units = 1, kernel_initializer = tf.keras.initializers.he_uniform(), activation = tf.nn.softmax))

classifier.compile(optimizer=tf.keras.optimizers.Adam(lr=0.0001),
                      loss=tf.keras.losses.binary_crossentropy,
                      metric=tf.keras.metrics.categorical_accuracy)


my_estimator = tf.keras.estimator.model_to_estimator(keras_model=classifier)


错误来自代码的最后一行
我猜这是因为keras Dense的属性不好,但是我怎么能找到具有from_config的等效属性呢?

Keras==2.1.6
tensorflow==1.7.0

最佳答案

看起来您使用的是错误包装中的Dense层:应该是tf.keras.layers.Dense而不是tf.layers.Dense

请注意,尽管它们具有相同的类名和许多相似的参数,但实际上它们没有任何共同点:tf.layers.Dense是高级的tensorflow API,与keras不相关。这就是为什么您不能将它们添加到classifier的原因。

关于python - 无法将keras模型转换为 tensorflow :类型对象'Dense'没有属性'from_config',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50047605/

10-12 05:03