TensorFlow——tf.contrib.layers库中的相关API
在TensorFlow中封装好了一个高级库,tf.contrib.layers库封装了很多的函数,使用这个高级库来开发将会提高效率,卷积函数使用tf.contrib.layers.conv2d,池化函数使用tf.contrib.layers.max_pool2d和tf.contrib.layers.avg_pool2d,全连接函数使用 tf.contrib.layers.fully_connected,下面来看里面封装好的函数接口:
以最复杂的卷积为例,其他的几个函数与之类似:
layers.conv2d(inputs,num_outputs,kernel_size,stride,padding='SAME',data_format=None,rate=1,activation_fn=tf.nn.relu,normalizer_fn=None,normalizer_params=None,weights_initializer=initializers.xavier_initializers(),weights_regularizer=None,reuse=None,variables_collections=None,outputs_collections=None,trainable=True,scope=None)
常用的参数说明:
inputs:输入的数据
num_outputs:设置输出的channel数量。这里不用在设置输入的channel的数量了,该函数会自动根据shape来判断。
kernel_size:卷积核大小,不需要带上batch和channel,只需要输入尺寸即可,[ 5, 5 ]就代表5x5大小的卷积核,如果长宽都一样,可以直接写一个5就行了。
stride:步长,默认的长宽都是相等的步长,卷积时一般都用1,默认的值也是1,如果长宽都不同,也可以用一个数组[ 1,2 ]来表示。
padding:设置填充的规则。
activation_fn:输出后的激活函数。
weights_initializer:权重的初始化方式,默认使用的是 initializers.xavier_initializers(),能够使得所有层的梯度保持大体相同,biases_initializer同理。
weights_regularizer:正则化项,可以加入正则函数。
trainable:是否可训练,如作为训练节点,必须设置为True。
下面我们使用layers构建一个网络模型:
import tensorflow.contrib.layers as layersx = tf.placeholder(dtype=tf.float32, shape=[None, 32, 32, 3]) y = tf.placeholder(dtype=tf.float32, shape=[None, 10])x_images = tf.reshape(x, [-1, 32, 32, 3])h_conv1 = layers.conv2d(x_images, 64, 3, 1, activation_fn=tf.nn.relu) h_pool1 = layers.max_pool2d(h_conv1, [2, 2], stride=2, padding='SAME')h_conv2 = layers.conv2d(h_pool1, 64, 3, 1, activation_fn=tf.nn.relu) h_pool2 = layers.max_pool2d(h_conv2, [2, 2], stride=2, padding='SAME')h_conv3 = layers.conv2d(h_pool2, 32, 3, 1, activation_fn=tf.nn.relu) h_pool3 = layers.max_pool2d(h_conv3, [2, 2], stride=2, padding='SAME')h_conv4 = layers.conv2d(h_pool3, 16, 3, 1, activation_fn=tf.nn.relu) h_pool4 = layers.max_pool2d(h_conv4, [2, 2], stride=2, padding='SAME')h_conv5 = layers.conv2d(h_pool4, 10, 3, 1, activation_fn=tf.nn.relu) y_pool = tf.reshape(h_conv5, shape=[-1, 40])y_pool = layers.fully_connected(y_pool, 10, activation_fn=None)cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=y_pool))optimizer = tf.train.AdamOptimizer(learning_rate).minimize(cross_entropy)
使用layers是不是极大的简化了网络默写的代码,提升了我们的代码效率。
转载于:https://www.cnblogs.com/baby-lily/p/10993249.html
TensorFlow——tf.contrib.layers库中的相关API相关推荐
- 第十六节,使用函数封装库tf.contrib.layers
目录 一 tf.contrib.layers中的具体函数介绍 1.tf.contrib.layers.conv2d()函数的定义如下: 2.tf.contrib.layers.max_pool2d() ...
- 【TensorFlow】TensorFlow函数精讲之tf.contrib.layers.l1regularizer()-12_regularizer(lambda)
TensorFlow中计算L1正则化和L2正则化的函数: L1正则化:tf.contrib.layers.l1regularizer(lambda)(w)函数,它可以返回一个函数,这个函数可以计算一个 ...
- TensorFlow基础篇(八)——tf.contrib.layers.l1regularizer()-12_regularizer(lambda)
TensorFlow中计算L1正则化和L2正则化的函数: L1正则化:tf.contrib.layers.l1regularizer(lambda)(w),它可以返回一个函数,这个函数可以计算一个给定 ...
- tensorflow学习(一)——有关tensorflow不同层的使用(tf.nn 和tf.layers以及tf.contrib.layers)的简单区别
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/holmes_MX/article/de ...
- 【TensorFlow】TensorFlow函数精讲之tf.contrib.layers.flatten()
tf.contrib.layers.flatten(A)函数使得P保留第一个维度,把第一个维度包含的每一子张量展开成一个行向量,返回张量是一个二维的,返回的shape为[第一维度,子张量乘积). 一般 ...
- tf.nn 和tf.layers以及tf.contrib.layers的简单区别(转)
tensorflow不同层的使用(tf.nn 和tf.layers以及tf.contrib.layers)的简单区别(转) 2018年09月02日 18:50:33 holmes_MX 版权声明:原创 ...
- tf.contrib.layers.fully_connected详解
博主 https://www.jianshu.com/p/673fd07954e9 tf.contrib.layers.fully_connected(F, num_outputs,activatio ...
- tf.contrib在tf2中无法使用
在尝试文献中代码时发现tf.comtrib无法使用 官方文档中说 It is still possible to run 1.X code, unmodified (except for contri ...
- tensorflow tf.keras.layers tf.image 图像增强
import matplotlib.pyplot as plt import numpy as np import tensorflow as tf import tensorflow_dataset ...
最新文章
- Android中的多线程(字节跳动)
- moss得log文件不断增长的解决办法
- 基于CORS的geoserver同源访问策略
- FE之DR之线性降维:PCA/白化、LDA算法的数学知识(协方差矩阵)、相关论文、算法骤、代码实现、案例应用等相关配图之详细攻略
- 看准网点评没有了_大众点评“亡”于2020
- css选择器的优先级
- vc++ List Control控件获得所有选中行的序号
- 手工修复Azure DevOps无法连接到Azure的问题
- 基于gRPC服务发现与服务治理的方案
- 使用Eclipse创建一个Android程序方法
- 信息管理系统 github_Java+MySQL实现学生信息管理系统
- mysql的请求分发,基于 gorilla/mux 实现路由匹配和请求分发:服务单页面应用
- 浅谈SpringMVC源码的DispatcherServlet组件执行流程
- 机器学习算法一之基于K均值聚类算法实现数据聚类及二维图像像素分割
- 如何批量裁剪PDF每页的空白区域
- Windows安装Android软件,win7系统安装安卓软件WindowsAndroid的方法
- Ubuntu 视频 转 GIF
- 中国科学院计算机研究所上级单位,陈援非(中国科学院计算技术研究所高工)_百度百科...
- vuex-persist实现vux持久化
- 计算机考试准考证上的照片格式错了怎么办
热门文章
- 滴滴试行“选择路线”功能 乘客可自主选择行驶路线
- Python + Pytest 自动化框架的用例依赖实操
- 写给测试人的保姆级涨薪跳槽面试指南
- java清理垃圾_垃圾清理势在必行——Java垃圾收集算法
- sdl2和ffmpeg显示摄像头数据
- 360能卸载oracle,如何完全卸载Oracle
- 输入你的密码来连接到_手机怎样连接WiFi?详细步骤,教你操作
- 个人收集的一些库、工具、技术介绍
- python编程设计_程序设计入门—Python
- 【SpringClould】SpringClould eureka 单机 案例实验