tf.nn.conv2d与tf.layers.conv2d的区别及说明

 更新时间:2023年02月21日 14:06:53   作者:zhongranxu  
这篇文章主要介绍了tf.nn.conv2d与tf.layers.conv2d的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

tf.nn.conv2d与tf.layers.conv2d的区别

在写CNN中注意到tensorflow目前有tf.nn.conv2d和tf.layers.conv2d这两个很相似的API.

tf.nn.conv2d, 需要自行传入初始化好的filter(四个维度),在初始化filter或者说Weights中,已经手动选择了初始化方案,一般用的是tf.truncated_normal。另外tf.nn.conv2d中激活函数需要另外写。

而在tf.layers.conv2d中,只要写入n和size,参数列表中kernel_initializer默认是None, 不清楚这里的参数是如何初始化的? tf.layers.conv2d中,激活函数是一个参数,不需要另外调用。

问过大神,大神答曰:一般推荐使用tf.layers.下面的函数,用起来方便。但是在tf2.0里,tf.layers.下面的API也都被遗弃了,tf2.0推荐使用keras.layers下面的API。

tf.nn.conv2d

tf.layers.conv2d

tf.nn.conv2d和tf.layers.conv2d的学习

看了很多tensorflow卷积的例子,有的用了tf.nn.conv2d,有的用了tf.layers.conv2d,那么这两个究竟有啥不同呢?

tf.layers.conv2d(inputs, filters, kernel_size, strides=(1,1),

                       padding='valid', data_format='channels_last',
                    dilation_rate=(1,1), activation=None,
                    use_bias=True, kernel_initializer=None,
                    bias_initializer=init_ops.zeros_initializer(),
                    kernel_regularizer=None,
                    bias_regularizer=None,
                    activity_regularizer=None, trainable=True,
                    name=None, reuse=None)

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

对于卷积来说,作用是一样的。tf.layers.conv2d 使用tf.nn.convolution作为后端。

一个参数要注意一下:

  • filter:是一个4维张量,其type必须和输入一样,
[filter_height, filter_width, in_channels, out_channels]
  • filters:一个整数,输出空间的维度,也就是卷积核的数量。

tf.layers.conv2d参数丰富,一般用于从头训练一个模型。

tf.nn.conv2d,一般在下载预训练好的模型时使用。

所以,喜欢哪个就用哪个咯。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python 中文乱码问题深入分析

    python 中文乱码问题深入分析

    一直以来,python中的中文编码就是一个极为头大的问题,经常抛出编码转换的异常,python中的str和unicode到底是一个什么东西呢?
    2011-03-03
  • Python批量改变图片名字的示例代码

    Python批量改变图片名字的示例代码

    本文主要介绍了Python批量改变图片名字的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Python实现删除重复视频文件的方法详解

    Python实现删除重复视频文件的方法详解

    这篇文章主要为大家详细介绍了如何利用Python实现删除重复视频文件功能,文中的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
    2022-10-10
  • Python获取央视节目单的实现代码

    Python获取央视节目单的实现代码

    这篇文章主要介绍了Python获取央视节目单的实现代码,涉及Python页面采集的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • TensorFlow安装及jupyter notebook配置方法

    TensorFlow安装及jupyter notebook配置方法

    下面小编就为大家带来一篇TensorFlow安装及jupyter notebook配置方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • python实现忽略大小写对字符串列表排序的方法

    python实现忽略大小写对字符串列表排序的方法

    这篇文章主要介绍了python实现忽略大小写对字符串列表排序的方法,通过三种不同的方法实现了对字符串的排序,是非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • 一文带你快速掌握Python LightGBM必备知识点

    一文带你快速掌握Python LightGBM必备知识点

    LightGBM(Light Gradient Boosting Machine)是一种梯度提升树算法的高效实现,这篇文章为大家整理了十个LightGBM必备知识点,希望对大家有所帮助
    2023-06-06
  • Python趣味实战之手把手教你实现举牌小人生成器

    Python趣味实战之手把手教你实现举牌小人生成器

    前几天写了一个婴儿级别的爬虫图文教程,大家很喜欢.恰好周末看到有人咨询这个 “举牌小人” 怎么做?基于此,我想借此为大家再写一篇 “爬虫应用” 的文章,教你制作一个好玩儿的 “举牌小人” ,需要的朋友可以参考下
    2021-06-06
  • Python基于yield遍历多个可迭代对象

    Python基于yield遍历多个可迭代对象

    这篇文章主要介绍了Python基于yield遍历多个可迭代对象,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python分支语句与循环语句应用实例分析

    Python分支语句与循环语句应用实例分析

    这篇文章主要介绍了Python分支语句与循环语句应用,结合具体实例形式详细分析了Python分支语句与循环语句各种常见应用操作技巧与相关注意事项,需要的朋友可以参考下
    2019-05-05

最新评论