這是《python深度學習》的**+我的一些注釋筆記,可能有一些函式已經有庫實現了,我先放在著,以後遇到了我再過來補,如果有大神指教就更好了
import numpy as np
import pandas as pd
from keras.datasets import imdb
from keras import models
from keras import layers
#配置優化器
from keras import optimizers
#使用自定義的損失和指標
from keras import losses
from keras import metrics
#繪製訓練精度和驗證損失
import matplotlib.pyplot as plt
#載入資料
(train_data,train_labels)
,(test_data,test_labels)
=imdb.load_data(num_words=
10000
)#將整數序列編碼為二進位制矩陣
defvectorize_sequences
(sequences,dimension=
10000):
results=np.zeros(
(len
(sequences)
,dimension)
)for i,sequence in
enumerate
(sequences)
: results[i,sequence]=1
return results
x_train=vectorize_sequences(train_data)
x_test=vectorize_sequences(test_data)
#將標籤向量化
#array和asarray都可以將結構資料轉化為ndarray,但是主要區別就是當資料來源是ndarray時,array仍然會copy出乙個副本,占用新的記憶體,但asarray不會。
y_train = np.asarray(train_labels)
.astype(
'float32'
)y_test=np.asarray(test_labels)
.astype(
'float32'
)modele=models.sequential(
)modele.add(layers.dense(
16,activation=
'relu'
,input_shape=
(10000,)
))modele.add(layers.dense(
16,activation=
'relu'))
modele.add(layers.dense(
1,activation=
'sigmoid'))
#編譯模型,配製優化器,使用自定義的損失和指標
modele.
compile
(optimizer=optimizers.rmsprop(lr=
0.001
),loss=losses.binary_crossentropy,metrics=
[metrics.binary_accuracy]
)#留出驗證集
x_val=x_train[
:10000
]partial_x_train=x_train[
10000:]
y_val=y_train[
:10000
]partial_y_train=y_train[
10000:]
#訓練模型
history=modele.fit(partial_x_train,partial_y_train,epochs=
20,batch_size=
512,validation_data=
(x_val,y_val)
)#繪製訓練損失和驗證損失
history_dict=history.history
loss_value=history_dict[
'loss'
]val_loss_values=history_dict[
'val_loss'
]epoches=
range(1
,len
(loss_value)+1
)plt.plot(epoches,loss_value,
'bo'
,label=
'training loss'
)plt.plot(epoches,val_loss_values,
'b',label=
'validation loss'
)plt.title(
'training and validation loss'
)plt.xlabel(
'epochs'
)plt.ylabel(
'loss'
)plt.legend(
)plt.show(
)
深度學習筆記(2)
2 分詞 對每個句子進行分詞,也就是將乙個句子劃分成若干個詞 token 轉換為乙個詞的序列。3 建立字典 將每個詞對映到乙個唯一的索引 index 為了方便模型處理,我們需要將字串轉換為數字。因此我們需要先構建乙個字典 vocabulary 將每個詞對映到乙個唯一的索引編號。4 將詞轉為索引 使用...
深度學習所需的python 學習筆記2
數值 python支援三種數值型別 1 int 2 float 3 complex 如複數8 17j 可使用type 函式檢視返回的變數型別 數值計算 python中常見的數值計算有表中 符號含義 例子結果 加法 42 143 減法42 0.5 41.5 乘法 1234 2 2468 浮點除法 1 ...
TNU深度學習筆記2
這節課主要講了怎麼訓練rnn,用的方法是bptt backpropagation through time rnn的目標是訓練引數wh wo,wi。bptt的做法是,先將rnn隨著時間展開,如下圖 展開之後像訓練普通神經網路一樣做backpropagation就行了,唯一的區別在於rnn輸入是乙個連...