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

TensorFlow สามารถใช้สร้างโมเดลสำหรับชุดข้อมูล Fashion MNIST ใน Python ได้อย่างไร


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

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

pip install tensorflow

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

ชุดข้อมูล 'Fashion MNIST' มีรูปภาพของเสื้อผ้าประเภทต่างๆ มันมีภาพสีเทาของเสื้อผ้ามากกว่า 70,000 ที่อยู่ใน 10 หมวดหมู่ที่แตกต่างกัน รูปภาพเหล่านี้มีความละเอียดต่ำ (28 x 28 พิกเซล) เรากำลังใช้ Google Colaboratory เพื่อเรียกใช้โค้ดด้านล่าง

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

ต่อไปนี้เป็นข้อมูลโค้ดสำหรับสร้างโมเดลสำหรับชุดข้อมูล Fashion MNIST ใน Python -

ตัวอย่าง

model = tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(10)
])
print("Sequential model is being built")
model.compile(optimizer='adam',  loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),  metrics=['accuracy'])
print("Sequential model is being compiled")

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

ผลลัพธ์

Sequential model is being built
Sequential model is being compiled

คำอธิบาย

  • มีการกำหนดค่าเลเยอร์ในโมเดล

  • Layer ซึ่งเป็นบล็อกพื้นฐานของโครงข่ายประสาทเทียมจะดึงข้อมูลที่แสดงต่อเลเยอร์เป็นข้อมูลเข้า

  • เลเยอร์แบบง่ายจำนวนมากถูกจัดกลุ่มเข้าด้วยกัน

  • บางเลเยอร์ยังมีพารามิเตอร์ที่ปรับเพื่อให้ได้ค่าที่เหมาะสมที่สุดในระหว่างขั้นตอนการฝึก

  • เลเยอร์แรก "Flatten" จะแปลงรูปภาพจากอาร์เรย์ 2D เป็น 1D

  • เลเยอร์นี้ไม่มีพารามิเตอร์ที่ต้องเรียนรู้

  • เมื่อพิกเซลแบนราบแล้ว เลเยอร์ 'หนาแน่น' สองเลเยอร์จะถูกสร้างขึ้น โดยที่ทุกเลเยอร์หนาแน่นจะมีเซลล์ประสาท 128 เซลล์ เลเยอร์สุดท้ายจะคืนค่าอาร์เรย์บันทึกที่มีความยาว 10

  • ทุกเซลล์ประสาท/โหนดมีค่าซึ่งเป็นคะแนนที่บอกว่ารูปภาพเป็นของคลาสใด

  • แล้วคอมไพล์โมเดล