tf.nn,tf.layers, tf.contrib模块介绍

一、tf.nn,tf.layers, tf.contrib概述我们在使用tensorflow时,会发现tf.nn,tf.layers, tf.contrib模块有很多功能是重复的,尤其是卷积操作,在使用的时候,我们可以根据需要现在不同的模块。但有些时候可以一起混用。下面是对三个模块的简述:(1)tf.nn:提供神经网络相关操作的支持,包括卷积操作(co...
摘要由CSDN通过智能技术生成

一、tf.nn,tf.layers, tf.contrib概述

 我们在使用tensorflow时,会发现tf.nn,tf.layers, tf.contrib模块有很多功能是重复的,尤其是卷积操作,在使用的时候,我们可以根据需要现在不同的模块。但有些时候可以一起混用。

        下面是对三个模块的简述:

        (1)tf.nn:提供神经网络相关操作的支持,包括卷积操作(conv)、池化操作(pooling)、归一化、loss、分类操作、embedding、RNN、Evaluation。

        (2)tf.layers:主要提供的高层的神经网络,主要和卷积相关的,个人感觉是对tf.nn的进一步封装,tf.nn会更底层一些。

        (3)tf.contrib:tf.contrib.layers提供够将计算图中的  网络层、正则化、摘要操作、是构建计算图的高级操作,但是tf.contrib包含不稳定和实验代码,有可能以后API会改变。

1) 如果只是想快速了解一下大概,不建议使用tf.nn.conv2d类似的函数,可以使用tf.layers和tf.contrib.layers高级函数

 2) 当有了一定的基础后,如果想在该领域进行深入学习,建议使用tf.nn.conv2d搭建神经网络,此时会帮助你深入理解网络中参数的具体功能与作用,而且对于loss函数需要进行正则化的时候很便于修改。

且能很清晰地知道修改的地方。而如果采用tf.layers和tf.contrib.layers高级函数,由于函数内部有正则项,此时,不利于深入理解。而且如果编写者想自定义loss,此时比较困难,如如果读者想共享参数时,此时计算loss函数中的正则项时,应该只计算一次,如果采用高级函数可能不清楚到底如何计算的。

二、在神经网络构建中几个模块的函数对比

功能 tf.nn tf.layers tf.contrib 功能介绍
卷积运算(conv) conv2d(...) conv2d(...) layers.convolution2d 2D卷积层的功能界面
池化(pooling)

avg_pool(...)

max_pool(...)

average_pooling2d(...)

max_pooling2d(...)

layers.avg_pool2d

layers.max_pool2d

2D输入的平均和最大池层(例如图像)
全连接(dense)   dense(...)

layers.fully_connection

密集连接层的功能接口
退出率 dropout(...)
  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值