gpt4 book ai didi

python - 如何将我的 keras 模型与运行时生成的我自己的数据相匹配

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:16 24 4
gpt4 key购买 nike

我正在尝试做一个生成对抗网络,但我无法适应生成器模型。我使用仅包含密集层的 Sequential() 模型,首先使用 input_shape=(1,),最后使用 imgsize[0] * imgsize[1] * 3 输出空间。 imgsize = (28, 28) 因此输出空间有 2352 个单位。

我需要适应“实际成本”和“上一张图像”,但是当我尝试适应以前预测的输出时,会出现错误。

ValueError:检查目标时出错:预期 GenDense5 具有形状 (1,),但得到的数组具有形状 (2352,)

generator = keras.Sequential([
keras.layers.Dense(1, input_shape=(1,), activation=tf.nn.sigmoid, name="GenDenseIn"),
keras.layers.Dense(8, activation=tf.nn.softmax, name="GenDense2"),
keras.layers.Dense(64, activation=tf.nn.relu, name="GenDense3"),
keras.layers.Dense(256, activation=tf.nn.softmax, name="GenDense4"),
keras.layers.Dense(imgsize[0] * imgsize[1] * 3, activation=tf.nn.sigmoid, name="GenDense5")
])

generator.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

gen = generator.predict(np.array([1])) # 1 to find the best
img = gen.reshape((1, imgsize[0], imgsize[1], 3))

res = discriminator.predict(img) # Dicriminator evaluate real or fake value
cost = res[0][0] # Real value

model.fit(np.array([cost]), np.array(gen), epochs=100) #ERROR!

最佳答案

生成器模型必须输出 2352,但这些数字是一个集体值(图像),但该模型是使用稀疏_分类_交叉熵损失函数编译的,这是一个像我的判别器一样用于分类分类的函数。答案是使用mean_squared_error损失函数。

generator.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])

关于python - 如何将我的 keras 模型与运行时生成的我自己的数据相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56901319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com