मैं tf.layers.dense . का उपयोग करके समान आर्किटेक्चर और बिल्कुल समान वज़न के साथ दो मॉडल बनाना चाहता हूं
m1 = tf.layers.dense(input, units=10, activation='relu', name='m1')
m2 = tf.layers.dense(input, units=10, activation='relu', name='m2')
मैं m2 वज़न और बायस को m1 के समान कैसे सेट कर सकता हूँ? (समान मान, साझा भार नहीं, इसलिए प्रशिक्षण के दौरान m1, m2 भार नहीं बदलेगा और इसके विपरीत)
2 जवाब
आपको सबसे पहले वज़न और पूर्वाग्रह प्रारंभकर्ता बनाना चाहिए:
import tensorflow as tf
tf.enable_eager_execution()
init_kernel = tf.constant_initializer([[1,2,3],[4,5,6]])
init_bias = tf.constant_initializer([7,8,9])
फिर आप दो सघन परतें बना सकते हैं और एक ही इनिशियलाइज़र को kernel_initializer
और bias_initializer
में पास कर सकते हैं।
layer1 = tf.layers.dense(inputs=inputs, units=3, kernel_initializer=init_kernel, bias_initializer=init_bias)
layer2 = tf.layers.dense(inputs=inputs, units=3, kernel_initializer=init_kernel, bias_initializer=init_bias)
अगर मैं आपके प्रश्न को सही ढंग से समझता हूं तो आपको यही चाहिए।
गोरजन उत्तर सही है, लेकिन मुझे एक और समाधान भी मिला जो अधिक जटिल परिदृश्यों में उपयोग करना आसान हो सकता है:
with tf.Session() as sess:
with tf.variable_scope("m1", reuse=True):
weights_m1 = sess.run(tf.get_variable("kernel"))
with tf.variable_scope("m2", reuse=True):
sess.run(tf.get_variable("kernel").assign(weights_m1))
weights_m2 = sess.run(tf.get_variable("kernel"))
print(np.array_equal(weights_m1, weights_m2) # True
संबंधित सवाल
नए सवाल
tensorflow
TensorFlow एक ओपन-सोर्स लाइब्रेरी और एपीआई है जिसे Google द्वारा लिखित और रखरखाव के लिए बनाया गया है। मशीन सीखने की समस्याओं को हल करने के लिए एपीआई का उपयोग करने के बारे में सवालों के लिए इस टैग का उपयोग भाषा-विशिष्ट टैग ([अजगर], [सी ++], [जावास्क्रिप्ट], [आर], आदि के साथ करें। TensorFlow API के साथ उपयोग की जा सकने वाली प्रोग्रामिंग भाषाएं बदलती हैं, इसलिए आपको प्रोग्रामिंग भाषा को निर्दिष्ट करना होगा। कृपया आवेदन क्षेत्र जैसे [ऑब्जेक्ट-डिटेक्शन] को भी निर्दिष्ट करें।