Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีใช้ Keras เทรนโมเดลด้วย Python

Keras: Deep Learning API ระดับสูง เขียนด้วย Python รันบน TensorFlow (จากโครงการ ONEIROS) รองรับ Scalable, Cross-platform เข้าถึงด้วย from tensorflow import keras

Functional API

ยืดหยุ่นกว่า Sequential API รองรับ Non-linear topology, Shared layers, Multiple inputs/outputs สร้างกราฟเลเยอร์ (DAG)

ตัวอย่าง: เทรนโมเดลกับ CIFAR-10

print("The model is being plotted")
keras.utils.plot_model(model, "my_resnet.png", show_shapes=True)

print("Split the data into training and test data")
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()

print("Convert the type of data to float")
x_train = x_train.astype("float32") / 255.0
x_test = x_test.astype("float32") / 255.0
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)

print("Compiling the model")
model.compile(
    optimizer=keras.optimizers.RMSprop(1e-3),
    loss=keras.losses.CategoricalCrossentropy(from_logits=True),
    metrics=["acc"],
)

model.fit(x_train[:2000], y_train[:2000], batch_size=64, epochs=2, validation_split=0.2)

Code credit: TensorFlow Keras Functional Guide

ผลลัพธ์

The model is being plotted
Split the data into training and test data
Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
170500096/170498071 [==============================] - 2s 0us/step
Convert the type of data to float
Compiling the model
Epoch 1/2 25/25 [==============================] - 9s 332ms/step - loss: 2.3163 - acc: 0.1028 - val_loss: 2.2962 - val_acc: 0.1175
Epoch 2/2 25/25 [==============================] - 12s 492ms/step - loss: 2.3155 - acc: 0.1175 - val_loss: 2.2606 - val_acc: 0.1200
<tensorflow.python.keras.callbacks.History at 0x7f48d3ecfb00>

คำอธิบาย

  • แบ่งข้อมูล Train/Test
  • แปลงชนิดข้อมูลเป็น float และ Normalize
  • Compile โมเดลด้วย Optimizer, Loss, Metrics
  • Fit โมเดลกับ Training Data ด้วย fit()