卷積運算 卷積類

2021-10-12 13:49:48 字數 1212 閱讀 4336

# softmax 將實數值轉換為概率值

# 使用keras介面如何操作

# import 匯入模組,每次使用模組中的函式都要是定是哪個模組。

# from…import * 匯入模組,每次使用模組中的函式,直接使用函式就可以了;

# 注因為已經知道該函式是那個模組中的了。

import tensorflow as tf

from tensorflow import keras

from tensorflow.keras import layers ,sequential

tf.__version__

# 輸入x

# [batch, in_height, in_width, in_channels]

x = tf.random.normal([1

,5,5

,3])

# 卷積核

# [filter_height * filter_width * in_channels, output_channels]

# 卷積核通道數要與輸入的通道數一致

# output_channels如果是1代表單卷積核,如果是其他數字代表多卷積核

w = tf.random.normal([3

,3,3

,6])

# 進行卷積操作

# strides 步長

out1 = tf.nn.conv2d(

input

=x, filters=w,

strides=[1

,1,1

,1],

padding=

'same'

)# same 在step=1的時候,會得出輸出與輸入相同大小對映

# same step不等於1之後會按照公式進行補零(就是計算二維卷積結果的公式)會在四周補零

# valid 不夠的不在補零計算,直接捨棄

conlayer = tf.keras.layers.conv2d(filters=

4,kernel_size=

3)

out = conlayer(x)

out

快速卷積運算 分塊卷積運算

對於實時系統來說,如果兩個較長的序列做卷積運算,等待資料準備好需要較長的時間,會增加系統的處理時延。並且卷積運算的計算複雜度與序列的長度為正相關。因此,我們考慮將長序列分割為若干個短序列,將長序列的卷積運算轉換為短序列之間的運算。一般會有如下兩種情況 1 對於兩個序列 並且 可以將序列 fori 0...

形象理解卷積(卷積運算為何要翻轉)

在卷積的定義中 我知道問乙個概念的定義就好像問 媽媽 為什麼要叫 媽媽 一樣。但我始終覺得這樣的定義有些彆扭。想知道這樣做背後的意義。兩個函式,翻轉其中乙個,再滑動求積分,叫卷積 convultion 不翻轉就滑動求積分,叫做互相關 cross correlation 如果其中之一是偶函式,那麼卷積...

深度學習基礎 卷積 加速的卷積運算

convolution在gpu上如何實現,文中介紹了三種方法 缺點 這種實現呢需要處理許多的corner case。文中介紹cuda convnet2是實現了該種方法,該種方法在不同取值的卷積引數空間效率不一,比如batch size 128,效率很高,但是如果batch size 64,效率比較低...