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

Tensorflow สามารถใช้สร้างเลเยอร์การทำให้เป็นมาตรฐานโดยใช้ Python ได้อย่างไร


สามารถใช้ Tensorflow เพื่อสร้างเลเยอร์การทำให้เป็นมาตรฐานได้โดยแปลงชื่อคลาสเป็นอาร์เรย์ Numpy ก่อน จากนั้นจึงสร้างเลเยอร์การทำให้เป็นมาตรฐานโดยใช้วิธี "การปรับขนาด" ซึ่งมีอยู่ในแพ็คเกจ tf.keras.layers.experimental.preprocessing

อ่านเพิ่มเติม:TensorFlow คืออะไรและ Keras ทำงานร่วมกับ TensorFlow เพื่อสร้าง Neural Networks ได้อย่างไร

โครงข่ายประสาทเทียมที่มีอย่างน้อยหนึ่งชั้นเรียกว่าชั้น Convolutional เราสามารถใช้ Convolutional Neural Network เพื่อสร้างโมเดลการเรียนรู้ได้

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

TensorFlow Hub เป็นพื้นที่เก็บข้อมูลที่มีโมเดล TensorFlow ที่ผ่านการฝึกอบรมล่วงหน้า สามารถใช้ TensorFlow เพื่อปรับแต่งโมเดลการเรียนรู้ได้

เราจะเข้าใจวิธีใช้โมเดลจาก TensorFlow Hub กับ tf.keras ใช้โมเดลการจำแนกรูปภาพจาก TensorFlow Hub เมื่อเสร็จแล้ว การเรียนรู้การถ่ายโอนสามารถทำได้เพื่อปรับแต่งโมเดลสำหรับคลาสรูปภาพที่กำหนดเอง ซึ่งทำได้โดยใช้แบบจำลองลักษณนามที่ฝึกไว้ล่วงหน้าเพื่อถ่ายภาพและคาดการณ์ว่ามันคืออะไร สามารถทำได้โดยไม่ต้องมีการฝึกอบรมใดๆ

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

ตัวอย่าง

print("It contains 5 classes")
class_names = np.array(train_ds.class_names)
print(class_names)
print("A normalization layer is built")
normalization_layer = tf.keras.layers.experimental.preprocessing.Rescaling(1./255)
train_ds = train_ds.map(lambda x, y: (normalization_layer(x), y))

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

ผลลัพธ์

It contains 5 classes
['daisy' 'dandelion' 'roses' 'sunflowers' 'tulips']
A normalization layer is built

คำอธิบาย

  • ข้อตกลงของ TFHub ในการสร้างแบบจำลองต้องมีอินพุตแบบลอยในช่วง [0, 1]

  • สามารถใช้เลเยอร์การปรับขนาดเพื่อให้ได้ระดับเดียวกัน

  • สามารถใช้การดึงข้อมูลล่วงหน้าของบัฟเฟอร์เพื่อให้สามารถดึงข้อมูลจากดิสก์ได้โดยไม่ต้องบล็อก I/O