मेरे पास टेन्सफोर्लो में एक नेटवर्क है, और मैं एक ऐसे फ़ंक्शन को परिभाषित करना चाहता हूं जो tf.layers.dense
परत (जाहिर है, वही एक) के माध्यम से इसका इनपुट पास करता है। मुझे reuse
तर्क दिखाई देता है, लेकिन इसे सही तरीके से उपयोग करने के लिए ऐसा लगता है कि मुझे एक वैश्विक चर रखने की आवश्यकता है, बस याद रखें कि मेरा फ़ंक्शन पहले से ही कहलाता है या नहीं। क्या कोई क्लीनर तरीका है?मैं एक घने परत का पुन: उपयोग कैसे कर सकता हूं?
5
A
उत्तर
4
जहां तक मुझे पता है, कोई क्लीनर तरीका नहीं है।
def my_dense(*args, **kwargs):
scope = tf.variable_scope(None, default_name='dense').__enter__()
def f(input):
r = tf.layers.dense(input, *args, name=scope, **kwargs)
scope.reuse_variables()
return r
return f
a = [[1,2,3], [4,5,6]]
a = tf.constant(a, dtype=tf.float32)
layer = my_dense(3)
a = layer(a)
a = layer(a)
print(*[[int(a) for a in v.get_shape()] for v in tf.trainable_variables()])
# Prints: "[3, 3] [3]" (one pair of (weights and biases))
4
आप सही आकार की एक निरंतर के खिलाफ परत का निर्माण कर सकता है और परिणाम की अनदेखी: सबसे अच्छा हम कर सकते हैं हमारे अमूर्त में tf.layers.dense
लपेट और एक वस्तु के रूप में उपयोग, छुपा variable scope की रीढ़ है।
इस प्रकार चर को घोषित किया गया है लेकिन ऑपरेशन को ग्राफ से हटाया जाना चाहिए।
उदाहरण
tf.layers.dense(tf.zeros(1, 128), 3, name='my_layer')
... later
hidden = tf.layers.dense(input, 3, name='my_layer', reuse=True)
0
के लिए मैं tf.layers.Dense ऊपर जवाब से क्लीनर पाते हैं। आपको केवल एक घन वस्तु की आवश्यकता है जिसे पहले परिभाषित किया गया है। फिर आप इसे कई बार पुन: उपयोग कर सकते हैं।
import tensorflow as tf
# Define Dense object which is reusable
my_dense = tf.layers.Dense(3, name="optional_name")
# Define some inputs
x1 = tf.constant([[1,2,3], [4,5,6]], dtype=tf.float32)
x2 = tf.constant([[4,5,6], [7,8,9]], dtype=tf.float32)
# Use the Dense layer
y1 = my_dense(x1)
y2 = my_dense(x2)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
y1 = sess.run(y1)
y2 = sess.run(y2)
print(y1)
print(y2)
वास्तव में tf.layers.dense
समारोह आंतरिक रूप से एक घने वस्तु निर्माण करती है और उस वस्तु को अपने इनपुट गुजरती हैं। अधिक जानकारी के लिए, code देखें।
संबंधित मुद्दे
- 1. मैं एक बूटस्ट्रैप मोडल div का पुन: उपयोग कैसे कर सकता हूं?
- 2. मैं एक पृष्ठ के भीतर एचटीएमएल/जेएसपी का पुन: उपयोग कैसे कर सकता हूं?
- 3. मैं विभिन्न टुकड़ों में एक एंड्रॉइड खंड उदाहरण का पुन: उपयोग कैसे कर सकता हूं?
- 4. क्या मैं सेवा परत का सही उपयोग कर रहा हूं?
- 5. मैं छवि पर एक परत कैसे बना सकता हूं?
- 6. मैं कईToManyField पर कैसे पुन: प्रयास कर सकता हूं?
- 7. मैं सामान्य लिस्प में गेटहाश लुकअप का पुन: उपयोग कैसे कर सकता हूं?
- 8. मैं इस एंड्रॉइड बटन का पुन: उपयोग कैसे कर सकता हूं?
- 9. मैं कई बार ब्लॉक का पुन: उपयोग कैसे कर सकता हूं?
- 10. मैं कोणीय में i18n अनुवाद कुंजी का पुन: उपयोग कैसे कर सकता हूं?
- 11. मैं nginx में सर्वर कॉन्फ़िगरेशन का पुन: उपयोग कैसे कर सकता हूं?
- 12. मैं LINQ कथन के भीतर अभिव्यक्तियों का पुन: उपयोग कैसे कर सकता हूं?
- 13. मैं एक जैस्पर रिपोर्ट का परीक्षण कैसे कर सकता हूं?
- 14. मैं leaflet.draw में ड्राइंग परत को कैसे हटा सकता हूं?
- 15. क्या मैं उन्हें अन्य मॉडलों में आयात करके ईकोर मॉडल का पुन: उपयोग कर सकता हूं?
- 16. मैं `\ sort ... 'का उपयोग कैसे कर सकता हूं?
- 17. मैं कच्चे_इनपुट का उपयोग कैसे कर सकता हूं?
- 18. मैं स्कैला में प्राइमेटिव का उपयोग कैसे कर सकता हूं?
- 19. मैं सी ++ में mysql का उपयोग कैसे कर सकता हूं?
- 20. मैं विरोधाभासी सबूत का उपयोग कैसे कर सकता हूं?
- 21. मैं जावा में जावास्क्रिप्ट का उपयोग कैसे कर सकता हूं?
- 22. एक घने एक Tensorflow
- 23. मैं जावा का उपयोग कर फ़ाइल कैसे चला सकता हूं?
- 24. मैं सी # में GetNextWindow() का उपयोग कैसे कर सकता हूं?
- 25. मैं global.asax से Server.MapPath() का उपयोग कैसे कर सकता हूं?
- 26. मैं window.history.pushState 'safely' का उपयोग कैसे कर सकता हूं
- 27. मैं EndRequest में ऑटोफैक का उपयोग कैसे कर सकता हूं?
- 28. मैं async/प्रतीक्षा का उपयोग कैसे कर सकता हूं?
- 29. मैं जावास्क्रिप्ट में गोटो का उपयोग कैसे कर सकता हूं?
- 30. मैं Google+ hangout चैट का उपयोग कैसे कर सकता हूं?
वाह, यह साफ है। बहुत साफ है कि गड़बड़ मैं खत्म हो गया! – Akiiino
आपको कुछ नाम 'my_dense' पर पास करना चाहिए ताकि विभिन्न परतों के लिए इस चाल का उपयोग करना संभव हो। – Sorin