Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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 将形状为(?,32,24,24)的张量转换为3D numpy数组_Python_Arrays_Numpy_Tensorflow - Fatal编程技术网

Python 将形状为(?,32,24,24)的张量转换为3D numpy数组

Python 将形状为(?,32,24,24)的张量转换为3D numpy数组,python,arrays,numpy,tensorflow,Python,Arrays,Numpy,Tensorflow,我有一个张量和一批32灰度图像,每个大小24x24 张量是在CNN中的Conv2D层之后生成的,CNN使用Keras和tensorflow后端构建。数据以numpy数组的形式提供给模型 现在,我想把输出张量转换成一个numpy数组,然后再转换回张量 我引用并编写了这段简单的代码,它似乎不起作用 sess = tf.InteractiveSession() ip = np.array(x.eval()) 这里,x是我的张量,ip是预期的numpy数组。这将作为InvalidArgumentErr

我有一个张量和一批32灰度图像,每个大小24x24

张量是在CNN中的Conv2D层之后生成的,CNN使用Keras和tensorflow后端构建。数据以numpy数组的形式提供给模型

现在,我想把输出张量转换成一个numpy数组,然后再转换回张量

我引用并编写了这段简单的代码,它似乎不起作用

sess = tf.InteractiveSession()
ip = np.array(x.eval())
这里,x是我的张量,ip是预期的numpy数组。这将作为InvalidArgumentError()抛出。有没有办法摆脱未知的(?)维度

以下是堆栈跟踪:

 Message=InvalidArgumentError()
  Source=c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzyconv2d.py
  StackTrace:
  File "c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzyconv2d.py", line 31, in call
    ip = np.array(x.eval())
  File "c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\keras\engine\base_layer.py", line 507, in __call__
    inputs=to_list(inputs))
  File "c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\keras\engine\sequential.py", line 185, in add
    output_tensor = layer(self.outputs[0])
  File "c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzycnn.py", line 39, in baseline_model
    model.add(F_Conv2D(5))
  File "c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzycnn.py", line 49, in <module>
    model = baseline_model()
Message=InvalidArgumentError()
Source=c:\users\rangan\Source\repos\fuzzycnn\fuzzycnn\fuzzyconv2d.py
堆栈跟踪:
文件“c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzyconv2d.py”,第31行,在调用中
ip=np.array(x.eval())
文件“c:\program files(x86)\microsoft visual studio\shared\python36\u 64\lib\site packages\keras\engine\base\u layer.py”,第507行,在\uuu调用中__
输入=至_列表(输入))
文件“c:\program files(x86)\microsoft visual studio\shared\python36\u 64\lib\site packages\keras\engine\sequential.py”,添加中第185行
输出张量=层(自输出[0])
文件“c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzycnn.py”,第39行,在基线模型中
模型添加(F_Conv2D(5))
文件“c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzycnn.py”,第49行,在
模型=基线_模型()

根据定义,输出张量值是针对特定输入批次计算的。您需要将输入值传递给eval函数:

ip = x.eval(session=sess, feed_dict={input: X_batch})

只要x是感兴趣的张量,“输入”是输入占位符,这就是获取张量值的最简单方法。

请给出一个,包括我们可以运行的代码,该代码演示了问题、当前输出和预期输出。此外,如果有错误,请复制/粘贴整个错误跟踪,不仅仅是错误类型。