# Get the data. (x_train, y_train), (x_test, y_test) = cifar10.load_data() # Convert class vectors to binary class matrices. y_train = keras.utils.to_categorical(y_train, num_classes) y_test = keras.utils.to_categorical(y_test, num_classes) # Preprocess the images. x_train = x_train.astype('float32') x_test = x_test.astype('float32') x_train /= 255 x_test /= 255 # Get the model and compile it. img_input = keras.layers.Input(shape=(32, 32, 3)) model = MobileNet(input_tensor=img_input, classes=num_classes) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) print("Training model.") model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_data=(x_test, y_test), shuffle=True, verbose=1)
# 神兽保佑 # BUG是不可能有BUG的! import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' from mobilenet import MobileNet import numpy as np np.random.seed(10) from keras.datasets import cifar10 from keras.utils import np_utils (x_img_train, y_label_train),(x_img_test, y_label_test) = cifar10.load_data() x_img_train = x_img_train.astype('float')/255.0 x_img_test = x_img_test.astype('float')/255.0 y_label_train = np_utils.to_categorical(y_label_train) y_label_test = np_utils.to_categorical(y_label_test) model = MobileNet() try: model.load_weights("mobileV1-lite.h5") print("模型加载成功!继续训练") except: print("模型加载失败!从头开始训练") model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy']) train_history = model.fit(x_img_train, y_label_train, validation_split=0.2, epochs=10, batch_size=128, verbose=2) model.save_weights("mobileV1-lite.h5") print("保存模型成功!")
import sys, os sys.path.insert(0, os.path.abspath('..')) from keras.callbacks import TensorBoard import keras from keras.datasets import cifar10 from mobilenet import MobileNet batch_size = 128 num_classes = 10 epochs = 20 (x_train, y_train), (x_test, y_test) = cifar10.load_data() y_train = keras.utils.to_categorical(y_train, num_classes) y_test = keras.utils.to_categorical(y_test, num_classes) x_train = x_train.astype('float32') x_test = x_test.astype('float32') x_train /= 255 x_test /= 255 img_input = keras.layers.Input(shape=(32, 32, 3)) model = MobileNet(input_tensor=img_input, classes=num_classes) model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy']) model.summary() model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, validation_data=(x_test, y_test), shuffle=True, verbose=1, callbacks=[TensorBoard(log_dir='./runs/keras',write_grads=True)])