无法将 keras 模型转换为 tensorflow:类型对象 'Dense' 没有属性 'from_config'
Cannot convert keras model to tensorflow: type object 'Dense' has no attribute 'from_config'
我正在努力将我的 Keras 模型转换为 TensorFlow 估算器。我收到以下错误:
AttributeError: type object 'Dense' has no attribute '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
没有 good 属性,但我怎样才能找到具有 from_config
的等价物?
Keras==2.1.6
tensorflow==1.7.0
看起来您使用的 Dense
层来自错误的包:它应该是 tf.keras.layers.Dense
而不是 tf.layers.Dense
。
请注意,尽管它们具有相同的 class 名称和许多相似的参数,但实际上它们没有任何共同点:tf.layers.Dense
是高级张量流 API,而不是与keras有关。这就是为什么你不能将它们添加到 classifier
.
我正在努力将我的 Keras 模型转换为 TensorFlow 估算器。我收到以下错误:
AttributeError: type object 'Dense' has no attribute '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
没有 good 属性,但我怎样才能找到具有 from_config
的等价物?
Keras==2.1.6
tensorflow==1.7.0
看起来您使用的 Dense
层来自错误的包:它应该是 tf.keras.layers.Dense
而不是 tf.layers.Dense
。
请注意,尽管它们具有相同的 class 名称和许多相似的参数,但实际上它们没有任何共同点:tf.layers.Dense
是高级张量流 API,而不是与keras有关。这就是为什么你不能将它们添加到 classifier
.