TensorFlow เป็นเฟรมเวิร์ก Machine Learning ที่ Google พัฒนาและเป็น Open Source ใช้ร่วมกับ Python เพื่อนำอัลกอริทึม การเรียนรู้เชิงลึก (Deep Learning) และแอปพลิเคชันต่างๆ ไปใช้งานจริง สามารถใช้ทั้งในงานวิจัยและระบบ Production มีเทคนิคการเพิ่มประสิทธิภาพช่วยคำนวณทางคณิตศาสตร์ที่ซับซ้อนได้อย่างรวดเร็ว เนื่องจากใช้ NumPy และอาร์เรย์หลายมิติ (Multi-dimensional arrays) ซึ่งเรียกว่า "Tensors" เฟรมเวิร์กนี้รองรับการทำงานกับ Deep Neural Network ได้ดีเยี่ยม
สามารถติดตั้งแพ็กเกจ tensorflow บน Windows ด้วยคำสั่งด้านล่าง:
pip install tensorflow
Tensor เป็นโครงสร้างข้อมูลใน TensorFlow ช่วยเชื่อมโยดขอบในแผนภาพไหล (Flow Diagram) ที่เรียกว่า "Data Flow Graph" Tensor ก็คืออาร์เรย์หลายมิติหรือลิสต์ (List)
เราจะใช้ชุดข้อมูล Iliad ซึ่งประกอบด้วยข้อความจากงานแปล 3 ชิ้นของ William Cowper, Edward (Earl of Derby) และ Samuel Butler โมเดลจะถูกฝึกให้ระบุผู้แปลเมื่อได้รับบรรทัดข้อความเดี่ยว ไฟล์ข้อความได้รับการประมวลผลล่วงหน้า (Preprocessing) ได้แก่ การลบ Header, Footer, หมายเลขบรรทัด และชื่อบท
เราใช้ Google Colaboratory (Colab) ในการรันโค้ด Colab ช่วยให้รัน Python บนเบราว์เซอร์ ไม่ต้องตั้งค่า และเข้าถึง GPU ฟรี สร้างบน Jupyter Notebook
ตัวอย่างโค้ด
vocab_size += 2
print("Configure the dataset for better performance")
train_data = configure_dataset(train_data)
validation_data = configure_dataset(validation_data)
print("Train the model")
model = create_model(vocab_size=vocab_size, num_labels=3)
model.compile(
optimizer='adam',
loss=losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
print("Fit the training data to the model")
history = model.fit(train_data, validation_data=validation_data, epochs=3)
print("Finding the accuracy and loss associated with training")
loss, accuracy = model.evaluate(validation_data)
print("The loss is : ", loss)
print("The accuracy is : {:2.2%}".format(accuracy))
Credit โค้ด: TensorFlow Tutorials
ผลลัพธ์
Configure the dataset for better performance Train the model Fit the training data to the model Epoch 1/3 697/697 [==============================] - 35s 17ms/step - loss: 0.6891 - accuracy: 0.6736 - val_loss: 0.3718 - val_accuracy: 0.8404 Epoch 2/3 697/697 [==============================] - 8s 11ms/step - loss: 0.3149 - accuracy: 0.8713 - val_loss: 0.3621 - val_accuracy: 0.8422 Epoch 3/3 697/697 [==============================] - 8s 11ms/step - loss: 0.2165 - accuracy: 0.9162 - val_loss: 0.4002 - val_accuracy: 0.8404 Finding the accuracy and loss associated with training 79/79 [==============================] - 1s 2ms/step - loss: 0.4002 - accuracy: 0.8404 The loss is : 0.40021833777427673 The accuracy is : 84.04%
คำอธิบาย
โมเดลถูกฝึกบนชุดข้อมูลที่ผ่านการประมวลผลและเวกเตอร์ไรส์ (Vectorized) แล้ว
จากนั้นคอมไพล์และฝึก (Fit) เข้ากับโมเดล
Loss และ Accuracy ประเมินผลด้วยเมธอด
evaluateแสดงผลบน Console