日韩性视频-久久久蜜桃-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的简单区别(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 大地资源在线观看免费高清版粤语 | 黄色草逼网站 | 国产色影院 | 日韩精品毛片 | 琪琪原网址 | 欧美10p | 尤果网福利视频在线观看 | 色涩涩| 日本黄色一级视频 | 伊人春色网站 | 欧美视频直播网站 | 国产成人av一区二区 | 日韩视频一 | 少妇激情一区二区三区视频 | 亚洲一区视频网站 | 99久久久无码国产精品性色戒 | 99热热| 欧美图片一区二区 | 日日夜夜撸撸 | 91久久综合精品国产丝袜蜜芽 | 操天天 | 日韩福利一区 | 国产精品自产拍在线观看 | 欧美乱轮 | 一道本在线视频 | 中文字幕亚洲一区二区三区五十路 | 日韩在线一区视频 | 久久精品国产欧美亚洲人人爽 | 国产在线观看第一页 | 色视频免费在线观看 | 久久久无码人妻精品一区 | 成人一区二区三区仙踪林 | 91蜜臀精品国产自偷在线 | 久久国产精品电影 | 日本国产欧美 | 91少妇丨porny丨 | 99国产精品| av午夜激情 | 国产福利一区视频 | 天堂视频免费看 | 亚洲欧洲综合av | 在线免费观看av网 | 国产精品精品软件视频 | 激情综合六月 | 日韩精品久久久久久久酒店 | 日韩在线网址 | 日本高清免费不卡视频 | 手机看片日韩在线 | 午夜网站在线 | 麻豆视频观看 | 肉丝超薄少妇一区二区三区 | 黄色靠逼视频 | 精品人妻中文无码av在线 | 免费看日韩av | 久久免费视频网 | 国产少妇一区二区 | 中文字幕av一区二区三区谷原希美 | 欧美国产精品一区二区 | 日本少妇喂奶 | 亚洲av无码久久精品色欲 | jizzjizz亚洲| 国产精品免费久久久 | 欧美成人视屏 | 人操人视频 | 秘密基地电影免费版观看国语 | 天堂中文资源在线观看 | 国产精品一区二区av日韩在线 | 一级 黄 色 片69| 在线视频这里只有精品 | 免费av不卡在线观看 | 亚洲国产精品第一页 | 性猛交富婆╳xxx乱大交天津 | 人人人妻人人澡人人爽欧美一区 | 黄色小视频在线免费观看 | 亚洲精品国产精品乱码 | 男女一进一出视频 | 成人免费在线视频网站 | 91丨九色丨丰满人妖 | 夜夜骑天天操 | 黄页网站视频在线观看 | 三级av毛片 | 国产精品国产精品国产专区蜜臀ah | 亚洲av熟女高潮一区二区 | 丁香综合激情 | 在线激情网站 | 五月婷婷久 | 国产伦精品一区二区三区免费视频 | 这里精品 | 精品热 | 日本乱偷人妻中文字幕在线 | 视频二区在线 | 亚洲伦理网| 激情在线网站 | 精品一区电影 | 年下总裁被打光屁股sp | 2017日日夜夜 | 无码人妻丰满熟妇区bbbbxxxx | 18视频在线观看网站 | 99er在线|