نرمالسازی دستهای در آموزش و ارزیابی
لایهی nn.BatchNorm1d در حالت آموزش (model.train()) هر ستون دسته را با میانگین و واریانس همان دسته استاندارد میکند، و همزمان یک میانگین متحرک از آنها نگه میدارد. در حالت ارزیابی (model.eval()) از همان میانگینهای متحرک استفاده میکند — برای همین فراموش کردن model.eval() پیشبینیها را به ترکیب دسته وابسته میکند.
با پیشفرضهای PyTorch — ، ، momentum ، ، و شروع از running_mean و running_var — برای هر دستهی آموزشی :
توجه: نرمالسازی با واریانس اریب () است ولی میانگین متحرک با واریانس نااریب () بهروز میشود. در ارزیابی:
تابع batchnorm(batches, X_eval) دستهها (batches با شکل ) را به ترتیب در حالت آموزش از لایه رد میکند، و بعد X_eval را در حالت ارزیابی. خروجی، پشتسرهم: running_mean، running_var، و خروجی ارزیابی (سطر به سطر).
نمونهها
[[[[1.47, 2.93], [0.23, 3.31], [1.0, 2.49], [0.72, 3.21]], [[0.06, 1.18], [0.28, 3.36], [0.73, 0.8], [0.02, 0.9]]], [[0.7, 0.85], [1.8, 4.53], [-1.64, -3.78]]]
[0.1042, 0.4247, 0.8449, 0.9687, 0.6482, 0.4322, 1.8449, 4.1711, -1.8976, -4.272]
برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.
ورود