【发布时间】:2021-06-17 17:47:24
【问题描述】:
我尝试使用 Keras 库在 Python 中创建自动编码器。 我想将我的模型分成两部分:编码器和解码器。但是当我尝试创建解码器时出现错误。
我的代码是:
autoencoder = tf.keras.models.Sequential()
encoding_dim = 250
nb_classe = 4
# Inputs
input_imgA = keras.Input(shape=(784,))
input_imgB = keras.Input(shape=(784,))
input_imgC = keras.Input(shape=(784,))
# Encoder part
encodedA = keras.layers.Dense(encoding_dim, activation='relu')(input_imgA)
encodedB = keras.layers.Dense(encoding_dim, activation='relu')(input_imgB)
encoded = keras.layers.Multiply()([encodedA, encodedB])
encoded = keras.layers.Dense(nb_classe, activation='softmax')(encoded)
# Decoder part
decodedA = keras.layers.Dense(encoding_dim, activation='relu')(encoded)
decodedB = keras.layers.Dense(encoding_dim, activation='relu')(input_imgC)
decoded = keras.layers.Multiply()([decodedA, decodedB])
decoded = keras.layers.Dense(784, activation='relu')(decoded)
# Autoencoder
autoencoder = keras.Model(inputs = [input_imgA, input_imgB, input_imgC], outputs = decoded)
encoder = keras.Model(inputs = [input_imgA, input_imgB], outputs = encoded)
encoded_input = keras.Input(shape=(nb_classe,))
decoder = keras.Model(inputs = [encoded_input, input_imgC], outputs = decoded)
当我定义自动编码器和编码器时,没有问题。但我无法定义解码器。我希望解码器将编码器输出和图像作为输入。但我有一个错误,例如:
Graph disconnected: cannot obtain value for tensor Tensor("input_8:0", shape=(None, 4), dtype=float32) at layer "dense_6". The following previous layers were accessed without issue: []
我不明白我的错误。 请问你能帮帮我吗?
谢谢。
【问题讨论】:
标签: python tensorflow keras-layer autoencoder