Neural network Tensorflow中的独立图像块提取
在中,将Neural network Tensorflow中的独立图像块提取,neural-network,tensorflow,convolution,Neural Network,Tensorflow,Convolution,在中,将tf.nn.conv2d-操作描述为: 将过滤器展平为二维矩阵,形状[过滤器高度*过滤器宽度*输入通道,输出通道] 从输入张量中提取图像面片,以形成形状的虚拟张量[批处理、输出高度、输出宽度、过滤器高度*过滤器宽度*输入通道] 对于每个面片,将滤波器矩阵和图像面片向量相乘 是否有只应用步骤2的操作?我在API文档中找不到类似的内容。我可能使用了错误的关键字进行搜索。我想这样做的诀窍是: 使用output\u channels=filter\u height*filter\u width*
tf.nn.conv2d
-操作描述为:
[过滤器高度*过滤器宽度*输入通道,输出通道]
[批处理、输出高度、输出宽度、过滤器高度*过滤器宽度*输入通道]
是否有只应用步骤2的操作?我在API文档中找不到类似的内容。我可能使用了错误的关键字进行搜索。我想这样做的诀窍是:
output\u channels=filter\u height*filter\u width*in\u channels
np.eye().reforme()执行此操作的简单方法。
tf.nn.conv2d(输入、筛选、步幅=[1,1,1,1],padding='SAME')
[批处理、输出高度、输出宽度、过滤器高度*过滤器宽度*输入通道]
下面是一个简单的代码,用于大小为3*3的输入图像,带有一个通道(和批量大小为1)
将tensorflow导入为tf
将numpy作为np导入
输入值=np.arange(1,10)。重塑(1,3,3,1))
输入=tf常数(输入值)
输入=tf.cast(输入,tf.float32)
过滤器_值=np.眼睛(9).重塑((3,3,1,9))
filter=tf.常数(filter\u值)
过滤器=tf.cast(过滤器,tf.float32)
output=tf.nn.conv2d(输入、过滤、步幅=[1,1,1,1],padding='SAME')
我想这样做的诀窍是:
output\u channels=filter\u height*filter\u width*in\u channels
np.eye().reforme()执行此操作的简单方法。
tf.nn.conv2d(输入、筛选、步幅=[1,1,1,1],padding='SAME')
[批处理、输出高度、输出宽度、过滤器高度*过滤器宽度*输入通道]
下面是一个简单的代码,用于大小为3*3的输入图像,带有一个通道(和批量大小为1)
将tensorflow导入为tf
将numpy作为np导入
输入值=np.arange(1,10)。重塑(1,3,3,1))
输入=tf常数(输入值)
输入=tf.cast(输入,tf.float32)
过滤器_值=np.眼睛(9).重塑((3,3,1,9))
filter=tf.常数(filter\u值)
过滤器=tf.cast(过滤器,tf.float32)
output=tf.nn.conv2d(输入、过滤、步幅=[1,1,1,1],padding='SAME')
这现在添加到tensorflow api中:这现在添加到tensorflow api中:谢谢,我将尝试一下这种方法。很遗憾,我们不得不做“不必要的工作”,但它可能比我目前只使用CPU的自定义操作快。谢谢,我将尝试这种方法。很遗憾,我们不得不做“不必要的工作”,但它可能比我目前只使用CPU的自定义操作快。谢谢。然而,我发现,不幸的是,这个操作的梯度还没有定义。谢谢。然而,我发现,不幸的是,这个操作的梯度还没有定义。