用一維卷積神經網路處理序列
今天,我們將學習到用一維卷積理解序列資料。
一維卷積的卷積核是 (n,1) 的形狀。這裡需要注意的一點是,我們在二維卷積是大部分時間用到的卷積核為(3,3)(3x3=9),在一維卷積層,卷積視窗的大小可以提公升到 (7, ) 或 (9, ).
一維卷積處理的思路與二維的大致相同,這裡直接貼上**例項:
from keras.datasets import imdb
from keras.preprocessing import sequence
max_features =
10000
max_len =
500print
('loading data...'
)(x_train,y_train)
,(x_test,y_test)
= imdb.load_data(num_words=max_features)
print
(len
(x_train)
,'train sequences'
)print
(len
(x_test)
,'test sequences'
)print
('pad sequences (sample x time)'
)x_train = sequence.pad_sequences(x_train,maxlen=max_len)
x_test = sequence.pad_sequences(x_test,maxlen=max_len)
print
('x_train shape:'
,x_train.shape)
print
('x_test shape:'
,x_test.shape)
輸出:
#每個單詞對應乙個128維的向量
from keras.models import sequential
from keras import layers
from keras.optimizers import rmsprop
model = sequential(
)model.add(layers.embedding(max_features,
128,input_length=max_len)
)model.add(layers.conv1d(32,
(7,)
,activation=
'relu'))
#卷積核為 7
這裡特別注意,global_max_pooling1d就是對每個層做最大值池化,從而使 三維—>二維( 也可以用flatten()展平)
驗證集精確度也達到0.86,說明一維卷積的方法是完全可行的,想要再提高精確度需要對模型超引數進行調整,同時還要控制防止過擬合情況。
Python學習筆記(十)
mylab 專案實戰 1 在templates中乙個index.html我需要引入當前資料夾中的另乙個網頁,我直接在index的 中引入 html無效 最後,我在這個專案的主目錄下的urls中進行設定,可行 2 在呼叫網頁的時候,進行views設定,就已經把處理函式給選定了 直接在views,用re...
python學習筆記十
字典遍歷 集合函式 copy僅拷貝物件本身,而不對中的子物件進行拷貝,故對子物件進行修改也會隨著修改。dict1 dict2 dict1 dict3 dict1.copy dict1 user root dict1 num remove 1 print dict1 print dict2 print...
Python深度學習 學習筆記(十三)
上一節,我們提到了rnn已經rnn在keras中最簡單的層 rnn。但 rnn由於過於簡化,沒有實用價值。實際上,它不可以學到長期依賴。原因在於梯度消失問題,當運用比較多的非迴圈層時,而讓網變得無法訓練。同樣的問題其實也普遍發生在密集連線層。今天介紹的lstm long short term mem...