基於Keras的imdb資料集的情感二分類

2021-08-08 03:47:30 字數 1674 閱讀 4155

簡單的**,後注上解析

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...