簡單的**,後注上解析
from keras.preprocessing import sequence
from keras.models import sequential
from keras.layers import dense,embedding
from keras.layers import lstm
from keras.datasets import imdb
max_features = 20000
maxlen = 80
batch_size = 32
print('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(samples x time)')
x_train = sequence .pad_sequences(x_train ,maxlen= maxlen )
x_test = sequence .pad_sequences(x_test ,maxlen= maxlen )
print('x_train shape:',x_train .shape )
print('x_test shape:',x_test .shape )
print('build model...')
model = sequential()
model.add(embedding (max_features ,128))#嵌入層將正整數下標轉換為固定大小的向量。只能作為模型的第一層
model.add(lstm (128,dropout= 0.2,recurrent_dropout= 0.2))
model.add(dense(1,activation= 'sigmoid'))
model.compile(loss= 'binary_crossentropy',optimizer= 'adam',metrics= ['accuracy'])
print('train...')
model.fit(x_train ,y_train ,batch_size= batch_size ,epochs= 5,validation_data= (x_test ,y_test ))
score,acc = model.evaluate(x_test ,y_test ,batch_size= batch_size )
print('test score:',score)
print('test accuracy:', acc)
嵌入層embedding
嵌入層是將正整數的下標轉換為就有固定大小的向量,而且只能作為模型的第一層。
其中、常用的引數:
input_dim:字典長度,即輸入資料最大下標+1。
output_dim : 全連線嵌入的維度。
input_length:當輸入序列的長度固定時,該值為其長度。如果要在該層後接flatten層,然後接dense層,則必須指定該引數,否則dense層的輸出維度無法自動推斷。
基於Keras的imdb資料集電影評論情感二分類
載入資料集 from keras.datasets import imdb train data,train labels test data,test labels imdb.load data num words 10000 train data 0 1,14,22,16,178,32 trai...
影評情感分類(基於IMDB資料集)
回顧以前的筆記 在keras中,內建了imdb電影評分資料集,來進行評價 安裝keras conda install kerasconda就幫依賴全部搞定,記得加源 匯入imdb from keras.datasets import imdb資料集簡要說明 在資料中不是單詞,而是單詞的索引 一共就5...
IMDB資料集的解釋
目的 了解keras上的imdb資料集是怎麼一回事。前文主要是我的理解,官方解釋在後文,覺得官方解析得不夠到位。比如 embedding max features 20000 maxlen 100 embedding size 128 x train,y train x test,y test im...