Tensorflow Keras - AttributeError: Layer features has no inbound nodes
Tensorflow Keras - AttributeError: Layer features has no inbound nodes
Tensorflow 版本:1.11.0
我正在尝试将 TensorBoard 与 Tensorflow keras 模型一起用于投影仪可视化。
我收到 AttributeError: Layer features has no inbound nodes。
我不确定为什么在下面的简单代码中会出现此错误。我确实 google 错误,但我找不到正确的解决方案来修复它。
from os import makedirs
from os.path import exists, join
import tensorflow as tf
mnist = tf.keras.datasets.mnist
import numpy as np
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation=tf.nn.relu),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(10, activation=tf.nn.relu, name='features'),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
log_dir = "./logs"
with open(join(log_dir, 'metadata.tsv'), 'w') as f:
np.savetxt(f, y_test)
from tensorflow.keras.callbacks import TensorBoard
tf_board_callback = TensorBoard(
log_dir=log_dir,
batch_size=32,
embeddings_freq=1,
embeddings_layer_names=['features'],
embeddings_metadata='metadata.tsv',
embeddings_data=x_test
)
model.fit(x_train, y_train, epochs=5, callbacks=[tf_board_callback])
我想你应该为顺序模型的第一层指定输入形状
在Keras中定义网络时,添加的第一层需要添加input_shape。
在此处查看文档:https://keras.io/getting-started/sequential-model-guide/#specifying-the-input-shape
所以对于 MNIST,你应该有类似 input_shape=(28,28,1)
这里有一个很好的例子:https://www.kaggle.com/adityaecdrid/mnist-with-keras-for-beginners-99457
Tensorflow 版本:1.11.0
我正在尝试将 TensorBoard 与 Tensorflow keras 模型一起用于投影仪可视化。 我收到 AttributeError: Layer features has no inbound nodes。 我不确定为什么在下面的简单代码中会出现此错误。我确实 google 错误,但我找不到正确的解决方案来修复它。
from os import makedirs
from os.path import exists, join
import tensorflow as tf
mnist = tf.keras.datasets.mnist
import numpy as np
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation=tf.nn.relu),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(10, activation=tf.nn.relu, name='features'),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
log_dir = "./logs"
with open(join(log_dir, 'metadata.tsv'), 'w') as f:
np.savetxt(f, y_test)
from tensorflow.keras.callbacks import TensorBoard
tf_board_callback = TensorBoard(
log_dir=log_dir,
batch_size=32,
embeddings_freq=1,
embeddings_layer_names=['features'],
embeddings_metadata='metadata.tsv',
embeddings_data=x_test
)
model.fit(x_train, y_train, epochs=5, callbacks=[tf_board_callback])
我想你应该为顺序模型的第一层指定输入形状
在Keras中定义网络时,添加的第一层需要添加input_shape。
在此处查看文档:https://keras.io/getting-started/sequential-model-guide/#specifying-the-input-shape
所以对于 MNIST,你应该有类似 input_shape=(28,28,1)
这里有一个很好的例子:https://www.kaggle.com/adityaecdrid/mnist-with-keras-for-beginners-99457