日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

Keras中Conv1D的使用及說明_python

作者:脈望蟲 ? 更新時間: 2023-01-15 編程語言

Conv1D

keras.layers.Conv1D(filters, kernel_size, strides=1, padding='valid', data_format='channels_last', dilation_rate=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)

1D 卷積層 (例如時序卷積)。

該層創(chuàng)建了一個卷積核,該卷積核以 單個空間(或時間)維上的層輸入進行卷積, 以生成輸出張量。 如果 use_bias 為 True, 則會創(chuàng)建一個偏置向量并將其添加到輸出中。 最后,如果 activation 不是 None,它也會應用于輸出。

當使用該層作為模型第一層時,需要提供 input_shape 參數(shù)(整數(shù)元組或 None),例如, (10, 128) 表示 10 個 128 維的向量組成的向量序列, (None, 128) 表示 128 維的向量組成的變長序列。

參數(shù)

  • filters: 整數(shù),輸出空間的維度 (即卷積中濾波器的輸出數(shù)量)。
  • kernel_size: 一個整數(shù),或者單個整數(shù)表示的元組或列表, 指明 1D 卷積窗口的長度。
  • strides: 一個整數(shù),或者單個整數(shù)表示的元組或列表, 指明卷積的步長。 指定任何 stride 值 != 1 與指定 dilation_rate 值 != 1 兩者不兼容。
  • padding: “valid”, “causal” 或 “same” 之一 (大小寫敏感) “valid” 表示「不填充」。 “same” 表示填充輸入以使輸出具有與原始輸入相同的長度。 “causal” 表示因果(膨脹)卷積, 例如,output[t] 不依賴于 input[t+1:], 在模型不應違反時間順序的時間數(shù)據(jù)建模時非常有用。
  • data_format: 字符串, “channels_last” (默認) 或 “channels_first” 之一。輸入的各個維度順序。 “channels_last” 對應輸入尺寸為 (batch, steps, channels) (Keras 中時序數(shù)據(jù)的默認格式) 而 “channels_first” 對應輸入尺寸為 (batch, channels, steps)。
  • dilation_rate: 一個整數(shù),或者單個整數(shù)表示的元組或列表,指定用于膨脹卷積的膨脹率。 當前,指定任何 dilation_rate 值 != 1 與指定 stride 值 != 1 兩者不兼容。
  • activation: 要使用的激活函數(shù)。 如未指定,則不使用激活函數(shù) (即線性激活: a(x) = x)。
  • use_bias: 布爾值,該層是否使用偏置向量。
  • kernel_initializer: kernel 權(quán)值矩陣的初始化器 。
  • bias_initializer: 偏置向量的初始化器 。
  • kernel_regularizer: 運用到 kernel 權(quán)值矩陣的正則化函數(shù)。
  • bias_regularizer: 運用到偏置向量的正則化函數(shù)。
  • activity_regularizer: 運用到層輸出(它的激活值)的正則化函數(shù) 。
  • kernel_constraint: 運用到 kernel 權(quán)值矩陣的約束函數(shù)。
  • bias_constraint: 運用到偏置向量的約束函數(shù)。

輸入尺寸

3D 張量 ,尺寸為 (batch_size, steps, input_dim)

輸出尺寸

3D 張量,尺寸為 (batch_size, new_steps, filters)。 由于填充或窗口按步長滑動,steps 值可能已更改

輸入輸出尺寸的理解

一般在2D卷積中,輸入尺寸很直觀,為 (samples, rows, cols, channels),即為樣本數(shù),行數(shù)、列數(shù)和通道數(shù)四維信息,但是若以此推斷,在Conv1D總兩維信息就足夠,中間卻夾雜了一個steps,那這個steps如何去理解呢?

理解steps參數(shù),我們應該跳出圖像的思維,1D卷積通常施用在時序數(shù)據(jù)中,在時序數(shù)據(jù)的輸入中:

  • batch_size: 輸入的樣本數(shù)
  • steps: 時間維度,個人認為可以理解成量化后的時間長度,也就是多少個時刻
  • input_dim: 每個時刻的特征數(shù)量

keras Conv1D 一維卷積的輸入維度

報錯情況

expected conv1d_1_input to have 3 dimensions, but got array with shape (1, 56)

問題原因

維數(shù)不匹配

解決方法

數(shù)組的維數(shù)是(1,56),但神經(jīng)網(wǎng)絡(luò)維數(shù)與數(shù)組維數(shù)相反,應該使用(56,1)或(None,1)

同時神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)應改成三維,即reshape為(1,56,1)

總結(jié)

原文鏈接:https://blog.csdn.net/qq_36763031/article/details/108007612

欄目分類
最近更新