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

Tensorflow สามารถใช้ฝึกโมเดลด้วยชุดข้อมูลคำถาม stackoverflow โดยใช้ Python ได้อย่างไร


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

มีเทคนิคการเพิ่มประสิทธิภาพที่ช่วยในการดำเนินการทางคณิตศาสตร์ที่ซับซ้อนได้อย่างรวดเร็ว

เนื่องจากใช้ NumPy และอาร์เรย์หลายมิติ อาร์เรย์หลายมิติเหล่านี้เรียกอีกอย่างว่า 'เทนเซอร์' เฟรมเวิร์กรองรับการทำงานกับโครงข่ายประสาทเทียมระดับลึก สามารถปรับขนาดได้สูงและมาพร้อมกับชุดข้อมูลยอดนิยมมากมาย ใช้การคำนวณ GPU และจัดการทรัพยากรโดยอัตโนมัติ มันมาพร้อมกับไลบรารีการเรียนรู้ของเครื่องจำนวนมาก และได้รับการสนับสนุนและจัดทำเป็นเอกสารอย่างดี เฟรมเวิร์กมีความสามารถในการใช้งานโมเดล Deep Neural Network ฝึกอบรม และสร้างแอปพลิเคชันที่คาดการณ์ลักษณะที่เกี่ยวข้องของชุดข้อมูลที่เกี่ยวข้อง

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

pip install tensorflow

Tensor เป็นโครงสร้างข้อมูลที่ใช้ใน TensorFlow ช่วยเชื่อมต่อขอบในแผนภาพการไหล แผนภาพการไหลนี้เรียกว่า 'กราฟการไหลของข้อมูล' เทนเซอร์เป็นเพียงอาร์เรย์หลายมิติหรือรายการ พวกเขาสามารถระบุได้โดยใช้สามคุณลักษณะหลัก -

  • อันดับ − มันบอกเกี่ยวกับมิติของเทนเซอร์ สามารถเข้าใจได้ว่าเป็นลำดับของเทนเซอร์หรือจำนวนมิติในเทนเซอร์ที่กำหนดไว้

  • ประเภท − มันบอกเกี่ยวกับประเภทข้อมูลที่เกี่ยวข้องกับองค์ประกอบของเทนเซอร์ อาจเป็นเทนเซอร์แบบหนึ่งมิติ สองมิติ หรือ n มิติก็ได้

  • รูปร่าง − เป็นจำนวนแถวและคอลัมน์รวมกัน

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

ตัวอย่าง

ต่อไปนี้เป็นข้อมูลโค้ด -

print("A bag-of-words linear model is built to train the stackoverflow dataset")
binary_model = tf.keras.Sequential([layers.Dense(4)])
binary_model.compile(
   loss=losses.SparseCategoricalCrossentropy(from_logits=True),
   optimizer='adam',
   metrics=['accuracy'])
history = binary_model.fit(
   binary_train_ds, validation_data=binary_val_ds, epochs=10)

เครดิตโค้ด – https://www.tensorflow.org/tutorials/load_data/text

ผลลัพธ์

A bag-of-words linear model is built to train the stackoverflow dataset
Epoch 1/10
188/188 [==============================] - 4s 19ms/step - loss: 1.2450 - accuracy: 0.5243 -
val_loss: 0.9285 - val_accuracy: 0.7645
Epoch 2/10
188/188 [==============================] - 1s 3ms/step - loss: 0.8304 - accuracy: 0.8172 -
val_loss: 0.7675 - val_accuracy: 0.7895
Epoch 3/10
188/188 [==============================] - 1s 3ms/step - loss: 0.6615 - accuracy: 0.8625 -
val_loss: 0.6824 - val_accuracy: 0.8050
Epoch 4/10
188/188 [==============================] - 1s 3ms/step - loss: 0.5604 - accuracy: 0.8833 -
val_loss: 0.6291 - val_accuracy: 0.8125
Epoch 5/10
188/188 [==============================] - 1s 3ms/step - loss: 0.4901 - accuracy: 0.9034 -
val_loss: 0.5923 - val_accuracy: 0.8210
Epoch 6/10
188/188 [==============================] - 1s 3ms/step - loss: 0.4370 - accuracy: 0.9178 -
val_loss: 0.5656 - val_accuracy: 0.8255
Epoch 7/10
188/188 [==============================] - 1s 3ms/step - loss: 0.3948 - accuracy: 0.9270 -
val_loss: 0.5455 - val_accuracy: 0.8290
Epoch 8/10
188/188 [==============================] - 1s 3ms/step - loss: 0.3601 - accuracy: 0.9325 -
val_loss: 0.5299 - val_accuracy: 0.8295
Epoch 9/10
188/188 [==============================] - 1s 3ms/step - loss: 0.3307 - accuracy: 0.9408 -
val_loss: 0.5177 - val_accuracy: 0.8335
Epoch 10/10
188/188 [==============================] - 1s 3ms/step - loss: 0.3054 - accuracy: 0.9472 -
val_loss: 0.5080 - val_accuracy: 0.8340

คำอธิบาย

  • โครงข่ายประสาทเทียมถูกสร้างขึ้นโดยใช้ API 'ลำดับ'

  • สำหรับข้อมูลที่ได้รับการแปลงเป็นเวกเตอร์ในรูปแบบ "ไบนารี" จะมีการฝึกโมเดลแบบคำต่อคำ ซึ่งเป็นโมเดลเชิงเส้น