对imdb电影评论的单分类:
from keras.datasets import imdb
import numpy as np
from keras.layers import Dense
from keras import models
from keras import losses
(train_data,train_label),(test_data,test_label) = imdb.load_data(num_words=10000)
word_index = imdb.get_word_index()
# list1 = list([train_data[0],train_data[1]])
# print(list1[0])
# print(train_data)
# print(train_data)
# print(word_index)
reverse_word_index = dict([(value,key) for (key,value) in word_index.items()])
decode_review = ' '.join(reverse_word_index.get(i-3,'?')for i in train_data[0]) #进行解码
# print(decode_review)
# a = reverse_word_index.get(32066)
# print(a)
def ver_seq(sequences,dim=10000):
result = np.zeros((len(sequences),dim))
# list = [2,3]
# print(result[1,list])
# print('+++++++++++++++++++++++++')
for i,sequence in enumerate(sequences):
# print(sequence)
result[i,sequence] = 1 #进行编码
return result
x_dev = ver_seq(train_data)[:10000]
x_train = ver_seq(train_data)[10000:]
x_test = ver_seq(test_data)
print(x_train.shape)
y_dev = np.asarray(train_label).astype('float32')[:10000] #标签向量化
y_train = np.asarray(train_label).astype('float32')[10000:]
y_test = np.asarray(test_label).astype('float32')
model = models.Sequential()
model.add(Dense(16,activation='relu',input_shape=(10000,)))
model.add(Dense(16,activation='relu'))
model.add(Dense(1,activation='sigmoid'))
model.compile(optimizer='Adam',loss='binary_crossentropy',metrics=['acc'])
history = model.fit(x_train,y_train,batch_size=16,epochs=10,validation_data=(x_dev,y_dev))
history_dict = history.history #{loss,acc}的值
result = model.evaluate(x_test,y_test)
print(history_dict)