【问题标题】:Tensorflow Keras - AttributeError: Layer features has no inbound nodesTensorflow Keras - AttributeError:图层特征没有入站节点
【发布时间】:2018-10-11 07:20:39
【问题描述】:

张量流版本:1.11.0

我正在尝试将 TensorBoard 与 Tensorflow keras 模型一起用于投影仪可视化。 我收到 AttributeError: Layer features has no inbound 节点。 我不确定为什么在下面的简单代码中会出现此错误。我确实用谷歌搜索了这个错误,但我找不到正确的解决方案来修复它。

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])

【问题讨论】:

  • @mikhail-stepanov 你能回答这个问题吗

标签: python tensorflow keras tensorboard


【解决方案1】:

在 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

【讨论】:

    【解决方案2】:

    我猜你应该为顺序模型的第一层指定输入形状

    【讨论】:

    • 抱歉,我认为这不正确,因为有可用的展平层。你有没有尝试过你的解决方案。你能把代码贴在这里吗?谢谢
    • 这是正确的答案,我试过了,它解决了这个问题。
    • 根据help page 简洁是可以接受的,但更完整的解释更好。
    • 这是正确答案,如果您需要更多详细信息,请参阅下面的答案。
    • 我在尝试进行 layer.output 时遇到了完全相同的问题。只需添加一个输入层即可解决问题。
    猜你喜欢
    • 1970-01-01
    • 2020-11-26
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多