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

เราจะใช้ TensorFlow เพื่อกำหนดฟังก์ชันการสูญเสีย เครื่องมือเพิ่มประสิทธิภาพ ฝึกโมเดลและประเมินบนชุดข้อมูล IMDB ใน Python ได้อย่างไร


Tensorflow คือเฟรมเวิร์กแมชชีนเลิร์นนิงที่ให้บริการโดย Google เป็นเฟรมเวิร์กโอเพนซอร์สที่ใช้ร่วมกับ Python เพื่อใช้อัลกอริทึม แอปพลิเคชันการเรียนรู้เชิงลึก และอื่นๆ อีกมากมาย ใช้ในการวิจัยและเพื่อการผลิต

แพ็คเกจ 'tensorflow' สามารถติดตั้งบน Windows ได้โดยใช้บรรทัดโค้ดด้านล่าง -

pip install tensorflow

ชุดข้อมูล 'IMDB' มีบทวิจารณ์ภาพยนตร์มากกว่า 50,000 เรื่อง โดยทั่วไปชุดข้อมูลนี้ใช้กับการดำเนินการที่เกี่ยวข้องกับการประมวลผลภาษาธรรมชาติ

เรากำลังใช้ Google Colaboratory เพื่อเรียกใช้โค้ดด้านล่าง Google Colab หรือ Colaboratory ช่วยเรียกใช้โค้ด Python บนเบราว์เซอร์และไม่ต้องมีการกำหนดค่าใดๆ และเข้าถึง GPU ได้ฟรี (หน่วยประมวลผลกราฟิก) Colaboratory ถูกสร้างขึ้นบน Jupyter Notebook

ต่อไปนี้เป็นข้อมูลโค้ดเพื่อกำหนดฟังก์ชันการสูญเสีย ตัวเพิ่มประสิทธิภาพ ฝึกโมเดลและประเมินบนชุดข้อมูล IMDB -

model.compile(loss=losses.BinaryCrossentropy(from_logits=True),
              optimizer='adam',
              metrics=tf.metrics.BinaryAccuracy(threshold=0.0))
epochs = 10
history = model.fit(
    train_ds,
    validation_data=val_ds,
    epochs=epochs)
loss, accuracy = model.evaluate(test_ds)

print("Loss is : ", loss)
print("Accuracy is : ", accuracy)

เครดิตโค้ด − https://www.tensorflow.org/tutorials/keras/text_classification

ผลลัพธ์

Epoch 1/10
625/625 [==============================] - 12s 19ms/step - loss: 0.6818 - binary_accuracy: 0.6130 - val_loss: 0.6135 - val_binary_accuracy: 0.7750
Epoch 2/10
625/625 [==============================] - 4s 7ms/step - loss: 0.5785 - binary_accuracy: 0.7853 - val_loss: 0.4971 - val_binary_accuracy: 0.8230
Epoch 3/10
625/625 [==============================] - 4s 7ms/step - loss: 0.4651 - binary_accuracy: 0.8372 - val_loss: 0.4193 - val_binary_accuracy: 0.8470
Epoch 4/10
625/625 [==============================] - 4s 7ms/step - loss: 0.3901 - binary_accuracy: 0.8635 - val_loss: 0.3732 - val_binary_accuracy: 0.8612
Epoch 5/10
625/625 [==============================] - 4s 7ms/step - loss: 0.3435 - binary_accuracy: 0.8771 - val_loss: 0.3444 - val_binary_accuracy: 0.8688
Epoch 6/10
625/625 [==============================] - 4s 7ms/step - loss: 0.3106 - binary_accuracy: 0.8877 - val_loss: 0.3255 - val_binary_accuracy: 0.8730
Epoch 7/10
625/625 [==============================] - 5s 7ms/step - loss: 0.2855 - binary_accuracy: 0.8970 - val_loss: 0.3119 - val_binary_accuracy: 0.8732
Epoch 8/10
625/625 [==============================] - 5s 7ms/step - loss: 0.2652 - binary_accuracy: 0.9048 - val_loss: 0.3027 - val_binary_accuracy: 0.8772
Epoch 9/10
625/625 [==============================] - 5s 7ms/step - loss: 0.2481 - binary_accuracy: 0.9125 - val_loss: 0.2959 - val_binary_accuracy: 0.8782
Epoch 10/10
625/625 [==============================] - 5s 7ms/step - loss: 0.2328 - binary_accuracy: 0.9161 - val_loss: 0.2913 - val_binary_accuracy: 0.8792
782/782 [==============================] - 10s 12ms/step - loss: 0.3099 - binary_accuracy: 0.8741
Loss is : 0.3099007308483124
Accuracy is : 0.8741199970245361

คำอธิบาย

  • เมื่อสร้างโมเดลแล้ว จะคอมไพล์โดยใช้ฟังก์ชัน "คอมไพล์"

  • จำนวนขั้นตอนที่กำหนดไว้ในการฝึกโมเดลคือ 10 ที่นี่

  • ฟังก์ชัน "พอดี" จะใช้เพื่อให้พอดีกับข้อมูลกับโมเดลที่สร้างขึ้น

  • ฟังก์ชัน "ประเมิน" ใช้ในการคำนวณการสูญเสียและความถูกต้องของแบบจำลองในชุดข้อมูลทดสอบ

  • ค่าการสูญเสียและความแม่นยำจะแสดงบนคอนโซล