คำถามเดิมนั้นเกี่ยวกับการใช้งาน TensorFlow โดยเฉพาะ อย่างไรก็ตามคำตอบสำหรับการใช้งานโดยทั่วไป คำตอบทั่วไปนี้เป็นคำตอบที่ถูกต้องสำหรับ TensorFlow
เมื่อใช้ batch normalization และ dropout ใน TensorFlow (โดยเฉพาะการใช้ Contrib.layers) ฉันต้องกังวลเกี่ยวกับการสั่งซื้อหรือไม่
ดูเหมือนเป็นไปได้ว่าถ้าฉันใช้การออกกลางคันตามด้วยการทำให้เป็นมาตรฐานแบทช์ทันทีอาจมีปัญหา ตัวอย่างเช่นหากการเปลี่ยนแปลงในการปรับมาตรฐานแบตช์ไปสู่จำนวนสเกลที่ใหญ่ขึ้นของผลลัพธ์การฝึกอบรม แต่การเปลี่ยนแปลงเดียวกันนั้นจะถูกนำไปใช้กับตัวเลขสเกลที่เล็กลง (เนื่องจากการชดเชยสำหรับการมีเอาต์พุตมากกว่า) โดยไม่ต้องออกกลางคันระหว่างการทดสอบ กะอาจจะปิด เลเยอร์การปรับมาตรฐานแบตช์ TensorFlow ชดเชยสิ่งนี้โดยอัตโนมัติหรือไม่ หรือไม่เกิดขึ้นด้วยเหตุผลบางอย่างที่ฉันหายไป?
นอกจากนี้ยังมีข้อผิดพลาดอื่น ๆ ที่ควรระวังเมื่อใช้ทั้งสองอย่างร่วมกัน? ตัวอย่างเช่นสมมติว่าผมใช้พวกเขาในลำดับที่ถูกต้องในการไปถึงข้างต้น (สมมติว่ามีเป็นคำสั่งที่ถูกต้อง) อาจมีปัญหาเกี่ยวกับการใช้ทั้งการฟื้นฟูชุดและการออกกลางคันในแต่ละชั้นหลาย ฉันไม่เห็นปัญหาในทันที แต่ฉันอาจจะขาดอะไรไป
ขอบคุณมาก!
อัพเดท:
การทดสอบการทดลองดูเหมือนจะชี้ให้เห็นว่าการสั่งซื้อไม่ว่า ฉันรันเครือข่ายเดียวกันสองครั้งโดยมีเพียงบรรทัดฐานแบทช์และย้อนกลับกลางคัน เมื่อการออกกลางคันอยู่ก่อนบรรทัดฐานของแบทช์การสูญเสียการตรวจสอบความถูกต้องดูเหมือนจะเพิ่มขึ้นเนื่องจากการสูญเสียการฝึกกำลังจะลดลง พวกเขาทั้งสองจะลดลงในอีกกรณีหนึ่ง แต่ในกรณีของฉันการเคลื่อนไหวช้าดังนั้นสิ่งต่างๆอาจเปลี่ยนไปหลังจากการฝึกฝนมากขึ้นและเป็นการทดสอบเพียงครั้งเดียว คำตอบที่ชัดเจนและมีข้อมูลมากขึ้นจะยังคงได้รับการชื่นชม