Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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 带有2D numpy阵列输入的Tensorflow Keras Conv2D错误_Python_Tensorflow_Keras_Deep Learning_Conv Neural Network - Fatal编程技术网

Python 带有2D numpy阵列输入的Tensorflow Keras Conv2D错误

Python 带有2D numpy阵列输入的Tensorflow Keras Conv2D错误,python,tensorflow,keras,deep-learning,conv-neural-network,Python,Tensorflow,Keras,Deep Learning,Conv Neural Network,我想使用2D numpy数组作为输入来训练CNN,但我收到了以下错误:ValueError:检查输入时出错:预期conv2d\u输入有4个维度,但得到了形状为(21,21)的数组 我的输入实际上是一个21x21 numpy浮点数组。网络的第一层定义为Conv2D(32,(3,3),input_shape=(21,21,1)),以匹配输入数组的形状 我发现了一些类似的问题,但没有一个是关于2D输入数组的,它们主要处理图像。根据文档,Conv2D希望输入一个4D张量,包含(样本、通道、行、列),但我

我想使用2D numpy数组作为输入来训练CNN,但我收到了以下错误:
ValueError:检查输入时出错:预期conv2d\u输入有4个维度,但得到了形状为(21,21)的数组

我的输入实际上是一个21x21 numpy浮点数组。网络的第一层定义为
Conv2D(32,(3,3),input_shape=(21,21,1))
,以匹配输入数组的形状

我发现了一些类似的问题,但没有一个是关于2D输入数组的,它们主要处理图像。根据文档,Conv2D希望输入一个4D张量,包含
(样本、通道、行、列)
,但我找不到任何解释这些值含义的文档。与图像输入相关的类似问题建议使用
np.ndarray.reforme()
重塑输入数组,但在尝试这样做时,我会收到一个输入错误


我如何在这样的输入阵列上训练CNN?
input\u shape
是否应该是不同大小的元组?

您当前的numpy数组具有维度
(21,21)
。但是,TensorFlow希望输入张量的维度格式为
(批次大小、高度、宽度、通道)
BHWC,这意味着您需要将numpy输入数组转换为4维度(从当前的2维度)。一种方法如下:

input = np.expand_dims(input, axis=0)
input = np.expand_dims(input, axis=-1)
现在,numpy
input
数组有维度:
(1,21,21,1)
,可以传递给TF Conv2D操作


希望这有帮助!:)

谢谢大家!!这就解决了问题。