《python深度學習》筆記2

2021-10-03 22:08:47 字數 2609 閱讀 9750

這是《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輸入是乙個連...