Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 如何正确使用tf.nn.max\u pool\u和\u argmax_Python_Tensorflow - Fatal编程技术网

Python 如何正确使用tf.nn.max\u pool\u和\u argmax

Python 如何正确使用tf.nn.max\u pool\u和\u argmax,python,tensorflow,Python,Tensorflow,目前,我对tensorflow进行了一些研究,以更好地理解机器学习tensorflow本身。因此,我想可视化tensorflow的方法(尽可能多)。为了可视化max_pool,我加载了一个图像并执行该方法。之后,我同时显示了输入和输出图像 将tensorflow导入为tf 进口cv2 将numpy作为np导入 将matplotlib.pyplot作为plt导入 image=cv2.imread('lena.png') image\u tensor=tf.expand\u dims(tf.Vari

目前,我对tensorflow进行了一些研究,以更好地理解机器学习tensorflow本身。因此,我想可视化tensorflow的方法(尽可能多)。为了可视化max_pool,我加载了一个图像并执行该方法。之后,我同时显示了输入和输出图像

将tensorflow导入为tf
进口cv2
将numpy作为np导入
将matplotlib.pyplot作为plt导入
image=cv2.imread('lena.png')
image\u tensor=tf.expand\u dims(tf.Variable(image,dtype=tf.float32),0)
#输出,argmax=tf.nn.max\u pool\u带有argmax(图像张量,ksize=[1,2,2,1],步长=[1,2,2,1],padding='SAME',name='pool1')
output=tf.nn.max\u pool(image\u tensor,ksize=[1,2,2,1],strips=[1,2,2,1],padding='SAME',name='pool1')
初始化所有变量()
session=tf.session()
会话运行(init)
输出=会话。运行(输出)
session.close()
image=cv2.cvt颜色(image,cv2.COLOR\u RGB2BGR)
plt.图()
plt.imshow(图片)
plt.show()
输出=cv2.cvtColor(输出[0],cv2.COLOR\u RGB2BGR)
plt.图()
plt.imshow(255输出)
plt.show()
一切正常,我得到了这个输出(如预期的那样)

现在我想用_argmax测试方法
tf.nn.max\u pool\u,以获得池操作的argmax。但如果我取消对这行的注释

output,argmax=tf.nn.max\u pool\u带argmax(图像张量,ksize=[1,2,2,1],跨步=[1,2,2,1],padding='SAME',name='pool1')

Python崩溃于

tensorflow.python.framework.errors.InvalidArgumentError:未注册任何操作内核以支持具有这些属性的Op“MaxPoolWithArgmax” [[Node:pool1=MaxPoolWithArgmaxT=DT_FLOAT,targetmax=DT_INT64,ksize=[1,2,2,1],padding=“SAME”,strips=[1,2,2,1]]

我不知道哪个参数是错误的,因为每个参数都应该是正确的()

有人知道出了什么问题吗?

从外观上看,似乎只为GPU实现了。如果您正在运行TensorFlow的仅CPU构建,那么您将得到一个错误,其形式为
“没有注册操作内核来支持带有这些属性的Op'MaxPoolWithArgmax…”


(这似乎是一个可以改进文档和错误消息的地方。)

是否可以在CPU上使用_argmax运行max_pool_?