1 from keras.datasets import imdb 2 (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)
import numpy as np def vectorize_sequences(sequences, dimension=10000): results = np.zeros((len(sequences), dimension)) #建立一個形狀爲(len(sequences),dimension) 的零矩陣 for i, sequence in enumerate(sequences): results[i, sequence] = 1. #將 results[i] 的指定索引設爲 1 return results x_train = vectorize_sequences(train_data) #將訓練數據向量化 x_test = vectorize_sequences(test_data) #將測試數據向量化
y_train = np.asarray(train_labels).astype('float32') y_test = np.asarray(test_labels).astype('float32')
from keras import models from keras import layers model = models.Sequential() model.add(layers.Dense(16, activation='relu', input_shape=(10000,))) model.add(layers.Dense(16, activation='relu')) model.add(layers.Dense(1, activation='sigmoid’))
model.compile(optimizer='rmsprop’, loss='binary_crossentropy’, metrics=['accuracy'])
from keras import optimizers model.compile(optimizer=optimizers.RMSprop(lr=0.001), loss='binary_crossentropy’, metrics=['accuracy'])
from keras import losses from keras import metrics model.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 = model.fit(partial_x_train, partial_y_train, epochs=20, batch_size=512, validation_data=(x_val, y_val))
import matplotlib.pyplot as plt history_dict = history.history loss_values = history_dict['loss'] val_loss_values = history_dict['val_loss'] epochs = range(1, len(loss_values) + 1) plt.plot(epochs, loss_values, 'bo', label='Training loss’) # 'bo' 表示藍色圓點 plt.plot(epochs, val_loss_values, 'b', label='Validation loss’) # 'b' 表示藍色實線 plt.title('Training and validation loss') plt.xlabel('Epochs') plt.ylabel('Loss') plt.legend() plt.show()
model = models.Sequential() model.add(layers.Dense(16, activation='relu', input_shape=(10000,))) model.add(layers.Dense(16, activation='relu')) model.add(layers.Dense(1, activation='sigmoid')) model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, epochs=4, batch_size=512) results = model.evaluate(x_test, y_test)
最終結果以下所示。網絡