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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Tensorflow中2D卷积API使用

發布時間:2024/9/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tensorflow中2D卷积API使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TF中用于2D卷積操作的api是tf.nn.conv_2d,源碼位置位于tensorflow/python/ops/gen_nn_ops.py

接口定義為:

  conv2d(input, filter, strides,padding, use_cudnn_on_gpu=True, data_format=‘NHWC’,name='None')

其中

  input的shape是[batch, in_height, in_width, in_channels]  

  filter的shape是[filter_height, filter_width, in_channels, out_channels]

  strides在的通常要寫成[1, stride, stride, 1],也就是說第0個參數和第三個參數都是固定1,中間分別是x方向和y方向的步長,通常是一樣的。

  padding是一個字符串類型,有SAME和VALID兩個取值。

返回的同樣是一個tensor。

再說一下tf.nn.bias.add這個api

接口定義是:

bias_add(value, bias, data_format=None, name = None)

value是一個tensor,可以是float的,double,int32等等類型的,value可以是任意維度的tensor,但是value的最后一維的size要和bias相同,類型可以不一樣,可以轉化就可以例如int轉double等。

例如在下面的代碼中經過卷積操作之后,輸入是28*28*1的單通道圖像,輸出編程了24*24*32的特征圖,偏置也是32維的tensor,特征圖i對應+bias[i],輸出還是24*24*32。同一個特征圖共享了卷積核的5*5個參數和1個bias參數,也就是說這里一共有(5*5+1)*32個參數。

#從mnist數據集中讀數據,定義一個占位符先 x = tf.placeholder(tf.float32, [None, 28*28]) #將x reshape成一個4D的tensor, 分別是batch size, height, width,channel x = x.reshape(x, shape=[-1, 28,28,1]) #這個變量是卷積核,卷積核大小是5*5,通道數1,卷積核格式32個 weight = tf.Variable(tf.random_normal([5,5,1,32])) bias = tf.Variable(tf.random_normal([32])) stride = 1 x = tf.nn.conv2d(x, weight, strides = [1, stride, stride, 1], padding= 'SAME') #再加上偏置量 x = tf.nn.bias_add(x, bias)

 通過上面的代碼應該就可以很清楚的明白tensorflow中是如何做2維卷積的了。

另外一個用于實現2D卷積的API是tf.layers.conv2d,實際上和上面的這個API并沒有太大區別,只是參數更多一些,使用的時候二者都可以。

后續再說一說CNN中的轉置卷積(deconvolutional network)在tf中的api的使用,以及計算方式。

?

轉載于:https://www.cnblogs.com/hellozlh/p/8251850.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Tensorflow中2D卷积API使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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