जबकि ऑटो-एन्कोडर्स में बंधे वजन का उपयोग करने का इतिहास है, आजकल इसका शायद ही कभी उपयोग किया जाता है (मेरे ज्ञान के सर्वोत्तम में), जो मुझे विश्वास है कि यह कैफे उदाहरण बंधे वजन का उपयोग क्यों नहीं करता है।
फिर भी, Caffe बंधे वजन के साथ समर्थन ऑटो एनकोडर करता है, और यह दो सुविधाओं का उपयोग कर possilbe है: पैरामीटर परतों और पक्षांतरित झंडा पूरी तरह से जुड़ा हुआ परत की (Caffe में InnerProduct) के बीच साझा करने। विशेष रूप से, दो पैरामीटर Caffe में साझा कर रहे हैं, तो उनके नाम एक ही है, जो इतनी तरह परम क्षेत्र के तहत निर्दिष्ट किया जा सकता है: "encode1_matrix
layer {
name: "encode1"
type: "InnerProduct"
bottom: "data"
top: "encode1"
param {
name: "encode1_matrix"
lr_mult: 1
decay_mult: 1
}
param {
name: "encode1_bias"
lr_mult: 1
decay_mult: 0
}
inner_product_param {
num_output: 128
weight_filler {
type: "gaussian"
std: 1
sparse: 15
}
bias_filler {
type: "constant"
value: 0
}
}
}
एक और पूरी तरह से जुड़ा हुआ परत (मिलान आयामों के साथ) के नाम का इस्तेमाल किया है "और" एन्कोड 1_बायस "तो ये पैरामीटर हमेशा समान होंगे, और कैफे समेकित ग्रेडियेंट का ख्याल रखेगा और पैरामीटर को सही तरीके से अद्यतन करेगा। दूसरा भाग पूरी तरह से जुड़े परत के ट्रांसपोज़ झंडा का उपयोग कर रहा है, ताकि साझा मैट्रिक्स को इसके इनपुट के गुणा से पहले स्थानांतरित किया जा सके। तो, ऊपर के उदाहरण का विस्तार, अगर हम डिकोडिंग प्रक्रिया के हिस्से के रूप में के रूप में "encode1_matrix" एक ही वजन मैट्रिक्स के साथ एक पूरी तरह से जुड़ा हुआ परत करना चाहते थे, तो हम यह इतना तरह परिभाषित करेगा:
layer {
name: "decode1"
type: "InnerProduct"
bottom: "encode1"
top: "decode1"
param {
name: "encode1_matrix"
lr_mult: 1
decay_mult: 1
}
param {
name: "decode1_bias"
lr_mult: 1
decay_mult: 0
}
inner_product_param {
num_output: 784
transpose: true
weight_filler {
type: "gaussian"
std: 1
sparse: 15
}
bias_filler {
type: "constant"
value: 0
}
}
}
सूचना है कि पूर्वाग्रह पैरामीटर साझा नहीं किए जाते हैं (विभिन्न आउटपुट आयामों के कारण नहीं हो सकते हैं), जबकि मैट्रिक्स साझा किए जाते हैं और डिकोडर परत ट्रांस्ड फ्लैग का उपयोग करती है जो बंधे ऑटो-एन्कोडर आर्किटेक्चर को पूरा करती है। https://gist.github.com/orsharir/beb479d9ad5d8e389800c47c9ec42840
स्रोत
2016-09-15 12:37:54
धन्यवाद, कि एक बहुत मदद करता है:
Caffe का उपयोग कर एक बंधे ऑटो एनकोडर का एक पूरा काम कर उदाहरण के लिए यहाँ देखें – dontloo