在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相关推荐

  1. 第十六节,使用函数封装库tf.contrib.layers

    目录 一 tf.contrib.layers中的具体函数介绍 1.tf.contrib.layers.conv2d()函数的定义如下: 2.tf.contrib.layers.max_pool2d() ...

  2. 【TensorFlow】TensorFlow函数精讲之tf.contrib.layers.l1regularizer()-12_regularizer(lambda)

    TensorFlow中计算L1正则化和L2正则化的函数: L1正则化:tf.contrib.layers.l1regularizer(lambda)(w)函数,它可以返回一个函数,这个函数可以计算一个 ...

  3. TensorFlow基础篇(八)——tf.contrib.layers.l1regularizer()-12_regularizer(lambda)

    TensorFlow中计算L1正则化和L2正则化的函数: L1正则化:tf.contrib.layers.l1regularizer(lambda)(w),它可以返回一个函数,这个函数可以计算一个给定 ...

  4. tensorflow学习(一)——有关tensorflow不同层的使用(tf.nn 和tf.layers以及tf.contrib.layers)的简单区别

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/holmes_MX/article/de ...

  5. 【TensorFlow】TensorFlow函数精讲之tf.contrib.layers.flatten()

    tf.contrib.layers.flatten(A)函数使得P保留第一个维度,把第一个维度包含的每一子张量展开成一个行向量,返回张量是一个二维的,返回的shape为[第一维度,子张量乘积). 一般 ...

  6. tf.nn 和tf.layers以及tf.contrib.layers的简单区别(转)

    tensorflow不同层的使用(tf.nn 和tf.layers以及tf.contrib.layers)的简单区别(转) 2018年09月02日 18:50:33 holmes_MX 版权声明:原创 ...

  7. tf.contrib.layers.fully_connected详解

    博主 https://www.jianshu.com/p/673fd07954e9 tf.contrib.layers.fully_connected(F, num_outputs,activatio ...

  8. tf.contrib在tf2中无法使用

    在尝试文献中代码时发现tf.comtrib无法使用 官方文档中说 It is still possible to run 1.X code, unmodified (except for contri ...

  9. tensorflow tf.keras.layers tf.image 图像增强

    import matplotlib.pyplot as plt import numpy as np import tensorflow as tf import tensorflow_dataset ...

最新文章

  1. Android中的多线程(字节跳动)
  2. moss得log文件不断增长的解决办法
  3. 基于CORS的geoserver同源访问策略
  4. FE之DR之线性降维:PCA/白化、LDA算法的数学知识(协方差矩阵)、相关论文、算法骤、代码实现、案例应用等相关配图之详细攻略
  5. 看准网点评没有了_大众点评“亡”于2020
  6. css选择器的优先级
  7. vc++ List Control控件获得所有选中行的序号
  8. 手工修复Azure DevOps无法连接到Azure的问题
  9. 基于gRPC服务发现与服务治理的方案
  10. 使用Eclipse创建一个Android程序方法
  11. 信息管理系统 github_Java+MySQL实现学生信息管理系统
  12. mysql的请求分发,基于 gorilla/mux 实现路由匹配和请求分发:服务单页面应用
  13. 浅谈SpringMVC源码的DispatcherServlet组件执行流程
  14. 机器学习算法一之基于K均值聚类算法实现数据聚类及二维图像像素分割
  15. 如何批量裁剪PDF每页的空白区域
  16. Windows安装Android软件,win7系统安装安卓软件WindowsAndroid的方法
  17. Ubuntu 视频 转 GIF
  18. 中国科学院计算机研究所上级单位,陈援非(中国科学院计算技术研究所高工)_百度百科...
  19. vuex-persist实现vux持久化
  20. 计算机考试准考证上的照片格式错了怎么办

热门文章

  1. 滴滴试行“选择路线”功能 乘客可自主选择行驶路线
  2. Python + Pytest 自动化框架的用例依赖实操
  3. 写给测试人的保姆级涨薪跳槽面试指南
  4. java清理垃圾_垃圾清理势在必行——Java垃圾收集算法
  5. sdl2和ffmpeg显示摄像头数据
  6. 360能卸载oracle,如何完全卸载Oracle
  7. 输入你的密码来连接到_手机怎样连接WiFi?详细步骤,教你操作
  8. 个人收集的一些库、工具、技术介绍
  9. python编程设计_程序设计入门—Python
  10. 【SpringClould】SpringClould eureka 单机 案例实验