TensorFlow中卷积神经网络相关函数

TensorFlow中CNN相关函数

卷积函数

tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on=None,name=None)

input:需要做卷积的出入数量,注意是一个4维的张量(batch,in_height,in_width,in_channels),要求类型为float32或float64其中之一

filter:卷积核。filter_height,filter_with,in_channels,out_channels

padding:定义匀速边框与元素内容之间的空间。"SAME"或"VALID",这个值决定了不同的卷积方式,当为"SAME"时,表示边缘填充,适用于全尺寸操作;当为"valid"时,表示边缘不填充

user_cudnn_on_gpu:bool类型,是否使用CUDNN加速

name:改操作名称

返回值:返回一个tensor,即feature map

python 复制代码
import tensorflow as tf
import numpy as np
input_data = tf.Variable(np.random.rand(10,9,9,4),dtype=np.float32)
filter_data = tf.Variable(np.random.rand(3,3,4,2),dtype=np.float32)
# y = tf.nn.conv2d(input_data,filter_data,strides=[1,1,1,1],padding='VALID')
y = tf.nn.conv2d(input_data,filter_data,strides=[1,1,1,1],padding='SAME')
print(input_data.shape)
print(y.shape)

池化函数

池化函数定义在tensorflow/python/ops下的nn.py和gen_nn_ops.py文件中:

最大池化:tf.nn.max_pool(value,ksize,strides,padding,name=None)

平均池化:tf.nn.avg_pool(value,ksize,strides,padding,name=None)

  • value:需要池化的输入,一版池化层姐在卷积层后面,所以输入通常conv2d所输出的feature map,依然是4维的张量(batch,height,width,channels
  • ksize:池化窗口的大小,由于一版不在batch和channel上做池化,所以ksize一版是1,height,width,1
  • strides:图像每一维的步长,是一个一维向量,长度为4
  • padding:和卷积函数中padding含义一样
  • name:改操作的名称
  • 返回值:返回一个tensor
python 复制代码
import tensorflow as tf
import numpy as np
input_data = tf.Variable(np.random.rand(10,6,6,4),dtype=np.float32)
filter_data = tf.Variable(np.random.rand(2,2,4,2),dtype=np.float32)
# y = tf.nn.conv2d(input_data,filter_data,strides=[1,1,1,1],padding='VALID')
y = tf.nn.conv2d(input_data,filter_data,strides=[1,1,1,1],padding='SAME')
# 最大池化
output = tf.nn.max_pool(input=y,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME')
print(input_data.shape)
print(y.shape)
print(output.shape)
# 最小池化
avg_output = tf.nn.avg_pool(input=y,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME')
print(input_data.shape)
print(y.shape)
print(avg_output.shape)
相关推荐
shepherd1115 分钟前
一文带你掌握 LLM、Token、Context、Prompt、RAG、MCP、Skill、Agent 等 AI 核心概念
人工智能·后端·ai编程
小林ixn22 分钟前
MCP 保姆级入门指南:AI 的“万能充电口”到底怎么玩?
人工智能
转转技术团队2 小时前
没有测试的核心代码,怎么交给 AI 重构
人工智能
爱读源码的大都督3 小时前
Claude Code源码分析(三):为什么系统提示词中需要有tools呢?
前端·人工智能·后端
半个落月4 小时前
LLM如何预测下一个Token?一文拆解Transformer核心流程
人工智能
触底反弹4 小时前
🔥 2026 年爆火的 Harness Engineering 到底是什么?从原理到实战一文讲透
javascript·人工智能·程序员
user4465117917914 小时前
源码深读 XAgent:6 个 Agent 怎么分工?工具失败不崩、死循环怎么防?
人工智能
魏祖潇4 小时前
SDD 完整指南——Spec 端打底、Story 端交付、留白区
人工智能·后端
常丛丛4 小时前
5.9 式输出:实时查看 LangGraph Agent 思考过程
人工智能