Python 我如何用自己在运行时生成的数据拟合keras模型

Python 我如何用自己在运行时生成的数据拟合keras模型,python,keras,Python,Keras,我试图建立一个生成性的对抗网络,但我不能适应发电机模型。我使用的Sequential()模型只有密集的层,首先是输入_shape=(1,),最后是imgsize[0]*imgsize[1]*3输出空间。imgsize=(28,28),因此输出空间有2352个单位 我需要适应“实际成本”和“以前的图像”,但当我试图适应以前预测的输出时,会出现一个错误 ValueError:检查目标时出错:预期GenDense5具有形状(1),但获得具有形状(2352,)的数组 generator=keras.Se

我试图建立一个生成性的对抗网络,但我不能适应发电机模型。我使用的Sequential()模型只有密集的层,首先是输入_shape=(1,),最后是imgsize[0]*imgsize[1]*3输出空间。imgsize=(28,28),因此输出空间有2352个单位

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

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

generator=keras.Sequential([
keras.layers.Dense(1,输入_形状=(1,),激活=tf.nn.sigmoid,name=“GenDenseIn”),
keras.layers.Dense(8,激活=tf.nn.softmax,name=“GenDense2”),
keras.layers.Dense(64,激活=tf.nn.relu,name=“GenDense3”),
keras.layers.Dense(256,激活=tf.nn.softmax,name=“GenDense4”),
keras.layers.Dense(imgsize[0]*imgsize[1]*3,激活=tf.nn.sigmoid,name=“GenDense5”)
])
compile(优化器='adam',loss='sparse\u categorical\u crossentropy',metrics=['accurity'])
gen=generator.predict(np.array([1]))#1以找到最佳
img=总体重塑((1,imgsize[0],imgsize[1],3))
res=鉴别器。预测(img)#鉴别器评估真值或假值
成本=res[0][0]#实际价值
model.fit(np.array([cost]),np.array(gen),epochs=100)#错误!

生成器模型必须输出2352,但这些数字是一个集合值(图像),但模型使用稀疏的分类交叉熵损失函数编译,这是一个分类函数,就像我的鉴别器一样。答案是使用均方误差损失函数

generator.compile(优化器='adam',loss='mean_squared_error',metrics=['accurity'])

生成器模型必须输出2352,但这些数字是一个集合值(图像),但模型使用稀疏的分类交叉熵损失函数编译,这是一个分类函数,就像我的鉴别器一样。答案是使用均方误差损失函数

generator.compile(优化器='adam',loss='mean_squared_error',metrics=['accurity'])

您是否可以尝试创建一个变量来保存imgsize[0]*imgsize[1]*3值,然后将该变量放入最终密集层?不起作用,但谢谢。您是否可以尝试创建一个变量来保存imgsize[0]*imgsize[1]*3值,然后将该变量放入最终密集层?不起作用,但谢谢。