tensorflow--conv函数
2024-08-29 23:47:49
#第一种yolo3中程序 def convolutional(input_data, filters_shape, trainable, name, downsample=False, activate=True, bn=True):
#卷积层名称
with tf.variable_scope(name):
#如果需要下采样
if downsample:
pad_h, pad_w = (filters_shape[0] - 2) // 2 + 1, (filters_shape[1] - 2) // 2 + 1
paddings = tf.constant([[0, 0], [pad_h, pad_h], [pad_w, pad_w], [0, 0]])
input_data = tf.pad(input_data, paddings, 'CONSTANT')
strides = (1, 2, 2, 1)
padding = 'VALID'
else:
strides = (1, 1, 1, 1)
padding = "SAME"
#定义一个变量
weight = tf.get_variable(name='weight', dtype=tf.float32, trainable=True,
shape=filters_shape, initializer=tf.random_normal_initializer(stddev=0.01))
conv = tf.nn.conv2d(input=input_data, filter=weight, strides=strides, padding=padding)
#如果归一化
if bn:
conv = tf.layers.batch_normalization(conv, beta_initializer=tf.zeros_initializer(),
gamma_initializer=tf.ones_initializer(),
moving_mean_initializer=tf.zeros_initializer(),
moving_variance_initializer=tf.ones_initializer(), training=trainable) #如果不归一化
else:
bias = tf.get_variable(name='bias', shape=filters_shape[-1], trainable=True,
dtype=tf.float32, initializer=tf.constant_initializer(0.0))
conv = tf.nn.bias_add(conv, bias) if activate == True: conv = tf.nn.leaky_relu(conv, alpha=0.1) return conv
input_data = common.convolutional(input_data, filters_shape=(3, 3, 3, 32), trainable=trainable, name='conv0') #第二种yolo1
def _conv_layer(self, x, num_filters, filter_size, stride,scope): in_channels = x.get_shape().as_list()[-1]
weight = tf.Variable(tf.truncated_normal([filter_size, filter_size,
in_channels, num_filters], stddev=0.1),name='weights')
bias = tf.Variable(tf.zeros([num_filters,]),name='biases') pad_size = filter_size // 2
pad_mat = np.array([[0, 0], [pad_size, pad_size], [pad_size, pad_size], [0, 0]])
x_pad = tf.pad(x, pad_mat)
conv = tf.nn.conv2d(x_pad, weight, strides=[1, stride, stride, 1], padding="VALID",name=scope)
output = self.leak_relu(tf.nn.bias_add(conv, bias)) return output
net = self._conv_layer(net, 512, 1, 1,'conv_22')
最新文章
- 55. 2种方法求字符串的组合[string combination]
- AngularJS 控制器
- android相关技能
- HDU 4920 Matrix multiplication 矩阵相乘。稀疏矩阵
- VC++多线程编程
- Android优秀资源整理合集(论菜鸟到高级攻城狮)
- WCF基礎
- NGUI List<;EventDelegate>; 小坑
- BootStrap2学习日记11---单选框多选框
- Unity 随机数的使用
- Sql Sever 字符串截取汉字
- ssh ";openssh-daemon is stopped";操作之伤+sftp访问“-bash: /dev/null: Permission denied”
- 妙味H5交互篇备忘
- mvc页面中,显示自定义时间格式
- Delphi操作XML
- 会话控制之session和cookie(20161107)
- Spring in action记录
- Jquery 使用和Jquery选择器
- Notepad++和Sublime单词首字符大小写转化问题
- ionic动态切换主题皮肤
热门文章
- 你必须知道的.Net 8.2.2 本质分析
- bootstrap点击下拉菜单没反应
- SDOI 种田记
- R语言 方差稳定化变换与线性变换 《回归分析与线性统计模型》page96
- [Java] Eclipse 设置相同变量背景色高亮显示
- Java笔记--多线程
- Day5 - G - The Unique MST POJ - 1679
- JS: 复选框——ALL与A、B、C(选中ALL同时选中各子项)
- NIO 聊天室代码实现
- 启动Eureka出现错误:Archive for required library in project cannot be read or is not a valid ZIP file