caffe
बैच सामान्यीकरण
खोज…
परिचय
डॉक्स से :
"इनपुट को सामान्य करता है और पूरे बैच में 0-माध्य और / या इकाई (1) विचरण करता है।
यह परत बैच सामान्यीकरण की गणना करती है जैसा कि [1] में वर्णित है।
[...]
[१] एस। इओफ़े और सी। सेजेडी, "बैच सामान्यीकरण: आंतरिक कोवरियेट शिफ्ट को कम करके गहन नेटवर्क प्रशिक्षण में तेजी।" arXiv प्रीप्रिंट arXiv: 1502.03167 (2015)। "
पैरामीटर
| पैरामीटर | विवरण |
|---|---|
| use_global_stats | 2 मार्च 2016 से रोहरबैच के पद से - शायद वह जानता है: |
| (Use_global_stats) | "डिफ़ॉल्ट रूप से, प्रशिक्षण के समय के दौरान, नेटवर्क वैश्विक औसत / विचरण के आँकड़ों की गणना एक रनिंग औसत के माध्यम से कर रहा है, जो तब प्रत्येक इनपुट के लिए नियतात्मक आउटपुट की अनुमति देने के लिए परीक्षण समय पर उपयोग किया जाता है। आप मैन्युअल रूप से टॉगल कर सकते हैं कि नेटवर्क संचय कर रहा है या आँकड़ों का उपयोग कर रहा है। use_global_stats विकल्प के माध्यम से। महत्वपूर्ण: काम करने के लिए इस सुविधा के लिए, आप सभी तीन पैरामीटर ब्लॉब्स, यानी, परम {lr_mult: 0} तीन बार परिभाषा में तीन बार सीखने की दर निर्धारित करें। |
| (Use_global_stats) | इसका मतलब डिफ़ॉल्ट रूप से (जैसा कि नीचे बैच_norm_layer.cpp में सेट किया गया है) है, आपको प्रोटोटेक्स्ट में यूज़_ग्लोड_स्टेट्स सेट नहीं करना है। use_global_stats_ = this-> phase_ == परीक्षण; " |
प्रशिक्षण के लिए प्रोटोटाइप
निम्नलिखित चैनल-वार पैमाने और पूर्वाग्रह के साथ एक बैचनुमा परत को प्रशिक्षित करने के लिए एक उदाहरण परिभाषा है। आमतौर पर एक बैचनर्म लेयर को कनवल्शन और रेक्टिफिकेशन लेयर्स के बीच डाला जाता है। इस उदाहरण में, layerx को आउटपुट करेगा और layerx-bn प्राप्त करेगा।
layer { bottom: 'layerx' top: 'layerx-bn' name: 'layerx-bn' type: 'BatchNorm'
batch_norm_param {
use_global_stats: false # calculate the mean and variance for each mini-batch
moving_average_fraction: .999 # doesn't effect training
}
param { lr_mult: 0 }
param { lr_mult: 0 }
param { lr_mult: 0 }}
# channel-wise scale and bias are separate
layer { bottom: 'layerx-bn' top: 'layerx-bn' name: 'layerx-bn-scale' type: 'Scale',
scale_param {
bias_term: true
axis: 1 # scale separately for each channel
num_axes: 1 # ... but not spatially (default)
filler { type: 'constant' value: 1 } # initialize scaling to 1
bias_filler { type: 'constant' value: 0.001 } # initialize bias
}}
अधिक जानकारी इस थ्रेड में मिल सकती है।
परिनियोजन के लिए रक्षासूत्र
मुख्य परिवर्तन की जरूरत है use_global_stats को true पर स्विच करना। यह चलती औसत का उपयोग करने के लिए स्विच करता है।
layer { bottom: 'layerx' top: 'layerx-bn' name: 'layerx-bn' type: 'BatchNorm'
batch_norm_param {
use_global_stats: true # use pre-calculated average and variance
}
param { lr_mult: 0 }
param { lr_mult: 0 }
param { lr_mult: 0 }}
# channel-wise scale and bias are separate
layer { bottom: 'layerx-bn' top: 'layerx-bn' name: 'layerx-bn-scale' type: 'Scale',
scale_param {
bias_term: true
axis: 1 # scale separately for each channel
num_axes: 1 # ... but not spatially (default)
}}
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow