Python 将形状为(?,32,24,24)的张量转换为3D numpy数组
我有一个张量和一批32灰度图像,每个大小24x24 张量是在CNN中的Conv2D层之后生成的,CNN使用Keras和tensorflow后端构建。数据以numpy数组的形式提供给模型 现在,我想把输出张量转换成一个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
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是感兴趣的张量,“输入”是输入占位符,这就是获取张量值的最简单方法。请给出一个,包括我们可以运行的代码,该代码演示了问题、当前输出和预期输出。此外,如果有错误,请复制/粘贴整个错误跟踪,不仅仅是错误类型。