สามารถใช้ 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