Python 如何使用已展平的输入数据实现2D conv

Python 如何使用已展平的输入数据实现2D conv,python,tensorflow,deep-learning,neural-network,conv-neural-network,Python,Tensorflow,Deep Learning,Neural Network,Conv Neural Network,我想在一个数据集上训练一个带有TensorFlow的CNN模型,该数据集的图像形状为28x28,已经被展平为长度为784的向量 我想在Tensorflow中使用Conv2D层,但由于我的输入已经被展平,我不知道最好的方法是什么 是否有一种层执行与展平相反的操作?我应该用子类API和numpy的重塑来编写自定义模型吗?或者是否可以使用一维数组执行二维卷积 提前感谢您的帮助 我不知道您为什么要这样做,但这里有一种可能会有帮助的方法。使用TensorFlow 2和Keras: model = mode

我想在一个数据集上训练一个带有TensorFlow的CNN模型,该数据集的图像形状为28x28,已经被展平为长度为784的向量

我想在Tensorflow中使用Conv2D层,但由于我的输入已经被展平,我不知道最好的方法是什么

是否有一种层执行与展平相反的操作?我应该用子类API和numpy的重塑来编写自定义模型吗?或者是否可以使用一维数组执行二维卷积


提前感谢您的帮助

我不知道您为什么要这样做,但这里有一种可能会有帮助的方法。使用TensorFlow 2和Keras:

model = models.Sequential()
model.add(layers.Conv2D(8,(3,3),padding='same',input_shape=([28,28,3])))
model.add(layers.Flatten())
model.add(layers.Reshape([28,28,8]))
model.add(layers.Conv2D(3,(3,3),padding='same',input_shape=([28,28,3])))
唯一的缺点是,你应该确切地知道你要在这里重塑什么样的维度


如果你需要更多的信息,你必须在你的问题中提供更多。您提供的信息有限,我只能写这些了。

layer?如果有什么用的话,你永远不应该用NumPy的重塑和TensorFlow张量。我不知道我是否清楚。我的输入数据是形状的(无*784),但实际上784代表28*28张图片。因为我的数据是由图片组成的,所以我想使用CNN架构。但一般来说,输入具有形状(无、28、28、1)或(无、28、28、3)。我想威胁输入,就好像它是一张28*28形状的图片,但它在现实生活中是一个784长度的向量。@Nathane我的方法有用吗?。如果能在你的问题的评论中加入你所说的话,那就太好了。这将有助于提高可读性。此外,一段代码也会有所帮助。所以我们更了解你的努力。此外,还应包括您正在使用的TF版本。你提供的信息越多,你得到的解决方案就越好。