日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tf.nn 和tf.layers以及tf.contrib.layers的简单区别(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tensorflow不同層的使用(tf.nn 和tf.layers以及tf.contrib.layers)的簡單區別(轉)

2018年09月02日 18:50:33?holmes_MX
版權聲明:原創博客未經允許請勿轉載! https://blog.csdn.net/holmes_MX/article/details/82317742

小trick: 對于使用tf.layers建立的神經網絡,如果想要對loss函數進行正則話,可以采用如下方式[1]:

但是該方法不適用于編程者自己定義不同層的正則化。

l2 = tf.add_n([tf.nn.l2_loss(var) for var in tf.trainable_variables()])

注意:本文中tensorflow ver=1.8

0. 寫作目的

好記性不如爛筆頭。及時更新。

1. 不同層的介紹

tf.nn是最基礎的層,如tf.nn.conv2d, tf.nn.max_pool等,需要編程者自己定義權重。下面給出自己定義的Conv2d函數:

(注意: 這里統一使用tf.variable_scope()來管理范圍)

  • def myConv2d(input_tensor, conv_size, stride_size ,
  • output_channel, name, regu=None, padding='SAME', act=tf.nn.relu, reuse=False):
  • with tf.variable_scope(name, reuse=reuse):
  • input_channel = input_tensor.get_shape()[-1].value
  • weights = tf.get_variable(name='weights', shape=[conv_size, conv_size, input_channel, output_channel],
  • dtype=tf.float32,
  • initializer=tf.truncated_normal_initializer(stddev=0.1))
  • biases = tf.get_variable(name='biases', shape=[output_channel], dtype=tf.float32,
  • initializer=tf.constant_initializer(0.001))
  • conv = tf.nn.conv2d(input=input_tensor, filter=weights, strides=[1, stride_size, stride_size, 1], padding=padding,
  • use_cudnn_on_gpu=True, name=name)
  • if regu != None and reuse != True:
  • tf.add_to_collection('losses', tf.contrib.layers.l2_regularizer(regu)(weights))
  • print_Layer(conv)
  • if act == None:
  • return tf.nn.bias_add(value=conv, bias=biases)
  • conv_relu = act(tf.nn.bias_add(value=conv, bias=biases))
  • print_Layer(conv_relu)
  • return conv_relu
  • tf.layers是基于tf.nn封裝的高級函數[2],如果自己定義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=tf.zeros_initializer(),
  • kernel_regularizer=None,
  • bias_regularizer=None,
  • activity_regularizer=None,
  • kernel_constraint=None,
  • bias_constraint=None,
  • trainable=True,
  • name=None,
  • reuse=None
  • )
  • tf.contrib.layers.conv2d也是封裝完好的高級函數[3],具體為:

  • tf.contrib.layers.conv2d(
  • inputs,
  • num_outputs,
  • kernel_size,
  • stride=1,
  • padding='SAME',
  • data_format=None,
  • rate=1,
  • activation_fn=tf.nn.relu,
  • normalizer_fn=None,
  • normalizer_params=None,
  • weights_initializer=initializers.xavier_initializer(),
  • weights_regularizer=None,
  • biases_initializer=tf.zeros_initializer(),
  • biases_regularizer=None,
  • reuse=None,
  • variables_collections=None,
  • outputs_collections=None,
  • trainable=True,
  • scope=None
  • )
  • 2. tensorflow中相同功能不同函數的使用對比

    2.1 對于初學者

    ?1) 如果只是想快速了解一下大概,不建議使用tf.nn.conv2d類似的函數,可以使用tf.layers和tf.contrib.layers高級函數

    ?2) 當有了一定的基礎后,如果想在該領域進行深入學習,建議使用tf.nn.conv2d搭建神經網絡,此時會幫助你深入理解網絡中參數的具體功能與作用,而且對于loss函數需要進行正則化的時候很便于修改。

    且能很清晰地知道修改的地方。而如果采用tf.layers和tf.contrib.layers高級函數,由于函數內部有正則項,此時,不利于深入理解。而且如果編寫者想自定義loss,此時比較困難,如如果讀者想共享參數時,此時計算loss函數中的正則項時,應該只計算一次,如果采用高級函數可能不清楚到底如何計算的。

    ?

    [Reference]

    [1] 小trick來源:?https://github.com/LaurentMazare/deep-models/blob/master/densenet/densenet.py

    [2]?tensroflow官網:https://www.tensorflow.org/versions/r1.8/api_docs/python/tf/layers/conv2d

    [3] tensroflow官網:https://www.tensorflow.org/versions/r1.8/api_docs/python/tf/contrib/layers/conv2d

    轉載于:https://www.cnblogs.com/ciao/articles/10870570.html

    新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

    總結

    以上是生活随笔為你收集整理的tf.nn 和tf.layers以及tf.contrib.layers的简单区别(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美视频在线免费看 | 久久免费视频2 | 欧美日韩国产三级 | 3d动漫精品h区xxxxx区 | 五月婷婷在线视频 | 亚洲av电影天堂男人的天堂 | 亚洲欧美日韩精品久久 | 亚洲美女操 | 男人的天堂在线视频 | 成都电影免费大全 | 老头把女人躁得呻吟 | 国产一区欧美二区 | 天天看av | 国产精品视频免费播放 | 青青草91 | 亚洲成人精品 | 琪琪伦伦影院理论片 | av手机在线播放 | jizz欧美大全| 国产精品久久久一区二区三区 | 啪在线视频 | 国产不卡毛片 | 99ri精品 | 久久成人a毛片免费观看网站 | 91国偷自产一区二区三区女王 | 国产一区二区三区精品视频 | 四虎少妇做爰免费视频网站四 | 亚洲色图第三页 | 高潮白浆女日韩av免费看 | 婷婷久久精品 | 日韩国产欧美一区二区 | 国产精品亚洲一区二区无码 | 日韩欧美国产一区二区在线观看 | 性xxxfllreexxx少妇 | 欧美a网站 | 国产成人高清 | 自拍天堂 | 天天干女人 | 黄色在线播放网站 | 国产一区免费在线 | 久久久影院 | 国产视频久久久久 | 亚洲 在线 | 中文字幕乱码中文乱码b站 国产一区二区三区在线观看视频 | 一级黄色小视频 | 欧美日韩精品中文字幕 | 农村老熟妇乱子伦视频 | 国模少妇一区二区三区 | 在线看成人av | 怎么可能高潮了就结束漫画 | 成人在线免费网址 | 亚洲一页| 日本xxxx高潮少妇 | 天天操人人干 | 久操新在线 | 日韩免费福利视频 | 亚洲精品蜜桃 | 色哟哟无码精品一区二区三区 | 性中国xxx极品hd | 91插插插永久免费 | 丰满少妇一级 | 九九精品九九 | a视频在线观看免费 | 久久福利视频导航 | 久热中文字幕 | 亚洲乱码国产乱码精品精大量 | 小妹色播影院 | 日韩欧美爱爱 | 十八岁世界在线观看高清免费韩剧 | 精品久久久久中文慕人妻 | 永久免费av网站 | 精品无码在线观看 | 日韩欧美一区二区三区久久婷婷 | 午夜伦理在线观看 | 人妻互换免费中文字幕 | 波多野一区 | 婷婷激情五月综合 | 免费av资源| 日韩精品三级 | 少妇精品亚洲一区二区成人 | 性欧美18| av中文字幕第一页 | 思思99精品视频在线观看 | 亚洲精品一二三四区 | 久久久国产精品成人免费 | 国产91在线看| 青娱乐青青草 | av网站久久 | 在线观看一区二区三区视频 | 国产一区二区福利 | 中文字幕三级视频 | 中文字幕乱码亚洲精品一区 | 欧美精品一区三区 | 国产精品一区久久久 | 操模特 | xxx国产精品 | 国产精品交换 | 制服丝袜一区 | 亚洲一区二区人妻 |