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

Tensorflow สามารถใช้แบ่งชุดข้อมูล Illiad เป็นข้อมูลการฝึกอบรมและทดสอบใน Python ได้อย่างไร


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

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

pip install tensorflow

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

พวกเขาสามารถระบุได้โดยใช้สามคุณลักษณะหลัก -

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

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

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

เราจะใช้ชุดข้อมูลของ Illiad ซึ่งมีข้อมูลข้อความของงานแปลสามงานจาก William Cowper, Edward (Earl of Derby) และ Samuel Butler โมเดลนี้ได้รับการฝึกฝนเพื่อระบุตัวแปลเมื่อมีการให้ข้อความบรรทัดเดียว ไฟล์ข้อความที่ใช้ได้รับการประมวลผลล่วงหน้า ซึ่งรวมถึงการนำส่วนหัวและส่วนท้ายของเอกสาร หมายเลขบรรทัด และชื่อบทออก

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

ตัวอย่าง

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

train_data = all_encoded_data.skip(VALIDATION_SIZE).shuffle(BUFFER_SIZE)
validation_data = all_encoded_data.take(VALIDATION_SIZE)

train_data = train_data.padded_batch(BATCH_SIZE)
validation_data = validation_data.padded_batch(BATCH_SIZE)

sample_text, sample_labels = next(iter(validation_data))
print("The text batch shape is : ", sample_text.shape)
print("The label batch shape is : ", sample_labels.shape)
print("A text example is : ", sample_text[5])
print("A label example is: ", sample_labels[5])

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

ผลลัพธ์

The text batch shape is : (64, 18)
The label batch shape is : (64,)
A text example is : tf.Tensor(
[ 20 391 2 11 144 787 2 3498 16 49 2 0 0 0
   0 0 0 0], shape=(18,), dtype=int64)
A label example is: tf.Tensor(1, shape=(), dtype=int64)

คำอธิบาย

  • เลเยอร์ Keras TextVectorization ใช้เพื่อจัดกลุ่ม/แบทช์ และจัดเตรียมการเติมให้กับข้อมูลเวกเตอร์

  • จำเป็นต้องมีการเติมเนื่องจากตัวอย่างภายในแบทช์ต้องมีขนาดและรูปร่างเหมือนกัน แต่ตัวอย่างในชุดข้อมูลอาจไม่เท่ากัน

  • ข้อความทุกบรรทัดอาจมีจำนวนคำต่างกัน

  • วิธี 'tf.data.Dataset' ช่วยในการแยกชุดข้อมูลและแบทช์แพ็ตช์

  • 'validation_data' และ 'train_data' คือชุดของข้อมูลแบทช์

  • ทุกแบทช์เป็นคู่ของ (ตัวอย่างมากมาย หลายป้ายกำกับ) ที่แสดงเป็นอาร์เรย์