Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flatten()层在Tensorflow中是如何工作的?_Python_Arrays_Tensorflow_Keras_Conv Neural Network - Fatal编程技术网

Python Flatten()层在Tensorflow中是如何工作的?

Python Flatten()层在Tensorflow中是如何工作的?,python,arrays,tensorflow,keras,conv-neural-network,Python,Arrays,Tensorflow,Keras,Conv Neural Network,我目前正在从事tensorflow和神经网络的工作,我对这个话题还很陌生 我有一堆4幅图像以(4160120,1)的形状传递到我的conv网络,因为这些图像是灰度的 在将图像通过神经网络后,我想将图像展平成一个长数组,然后传递到密集层 但在对神经网络的输出使用flatte()之后,我得到了一个(4240)形状的二维数组,而不是一个长的一维数组 为什么会这样?我需要做什么才能将其展平到1D阵列?只需再次使用flatte() 我这样问是因为我的目标是将展平的数据与另一个一维的输入数据连接起来,但是我

我目前正在从事tensorflow和神经网络的工作,我对这个话题还很陌生

我有一堆4幅图像以(4160120,1)的形状传递到我的conv网络,因为这些图像是灰度的

在将图像通过神经网络后,我想将图像展平成一个长数组,然后传递到密集层

但在对神经网络的输出使用flatte()之后,我得到了一个(4240)形状的二维数组,而不是一个长的一维数组

为什么会这样?我需要做什么才能将其展平到1D阵列?只需再次使用flatte()

我这样问是因为我的目标是将展平的数据与另一个一维的输入数据连接起来,但是我得到的数组不能连接,因为它们的形状不同


谢谢你的帮助

Keras层不影响批次尺寸。在将数据馈送到模型之前,必须使用
tf.reformate()

input1 = tf.reshape(input1, (-1,))
output = model(input1, input2) # exclude Flatten layer from your model

您有一个由4个图像组成的堆栈,160x120x1,您想将它们展平为一个1D阵列吗?如果不是全部的话,你会失去四幅图像之间的大部分空间关系。但我需要将另一个数组连接到卷积层的输出。我需要将我的(10,)数组转换成(4,10)数组来添加这个额外的输入吗?你的目标是什么?我的猜测是,由于您正在堆叠图像,因此您对它们之间的空间关系感兴趣。如果是,3D conv网络可能会对您更有用。如果要连接其他输入,并且不想丢失该信息,则必须将其他输入也堆叠在4s中,并以相同的顺序排列这些图像。我的目标是使用环境的深度灰度图像实现机器人在环境中导航的强化学习。输入是一个4映像堆栈,在通过conv网络传递映像后,我想连接有关目标的信息。比如距离和角度。然后将连接的信息传递到稠密层,然后输出我的Q值。如果要将正确的距离和角度传递到每个图像堆栈,则必须将展平张量与(4,10)张量连接起来。我不确定以后展平它是否会有帮助,因为展平4层图像后的密集层很可能不会为您提供有关周围环境的任何其他信息。我建议在网络中分别处理每个图像,然后传递信息,然后连接信息,为每个图像创建1D特征数组。然后在一个ML系统(如LightGBM)中使用它来尝试获取更多信息。因此,我需要在将其展平到(42240)后,以及在连接另一个数组之前进行重塑?@Ronnee您必须在馈送到NN之前进行重塑-请查看编辑