2011-04-19 14 views
13

पर numpy डिफ़ॉल्ट बनाना वैश्विक स्तर पर फ्लोट 64 के बजाय फ्लोट 32 मानों का उपयोग करने के लिए numpy सेट करने का कोई साफ तरीका है?पायथन: फ्लोट 32

+2

निकटता से संबंधित: http://stackoverflow.com/questions/5350342/can-i-set-float128-as-the-standard-float-array-in-numpy/5351486 –

+3

एससीपी सूची पर भी एक दिलचस्प चर्चा: http://old.nabble.com/switching-to-float32-ts24203533.html#a24203533 – joris

+0

नेबेल वार्तालाप देखा लेकिन फ्लोट 128 (धन्यवाद स्वेन) से चूक गया, और ऐसा लगता है कि वे दोनों एक ही बात कह रहे हैं, 'नहीं, ज़रुरी नहीं'। नाबल चर्चा पर उस समय इसे कुकबुक में जोड़ने का जिक्र किया गया जो अच्छा होगा। मैंने खुद ही फ्लोट 128 प्रश्न स्वेन के समान कुछ हैक्स किए हैं (और उत्तर दिया)। पीटी – Bolster

उत्तर

7

ऐसा नहीं है कि मुझे पता है। जब आप किसी भी सरणी के लिए कन्स्ट्रक्टर को कॉल करते हैं, या तो अपने GPU कोड को पास करने से पहले फ्लोर 32 (ndarray.astype विधि का उपयोग करें) को सरणी डालने के लिए आपको स्पष्ट रूप से टाइपटाइफ़ निर्दिष्ट करने की आवश्यकता होती है (मैं इसे प्रश्न पूछता हूं?)। यदि यह जीपीयू केस है, तो आप वास्तव में चिंतित हैं, मैं बाद वाले पक्ष का पक्ष लेता हूं - यह सब कुछ एक सटीकता में रखने के लिए बहुत परेशान हो सकता है और बिना किसी गहन प्रसारण नियमों और बहुत सावधानीपूर्वक डिज़ाइन किए गए कोड की पूरी तरह समझ के बिना।

एक और विकल्प आपके स्वयं के तरीकों को बनाने के लिए हो सकता है जो मानक numpy रचनाकारों को अधिभारित करते हैं (इसलिए numpy.zeros, numpy.ones, numpy.empty)। यह सब कुछ float32 में रखने के करीब जाना चाहिए।

+0

मैं जीपीयू मामले के लिए यही कर रहा हूं, लेकिन मैं 'अजीब-बग-हंट' – Bolster

+0

के हिस्से के रूप में परीक्षण के लिए सीपीयू बाउंड समकक्ष गणना परिशुद्धता के बीच सीधी तुलना के बारे में चिंतित था, क्या यह टिप्पणी अभी भी प्रसारण नियमों से संबंधित है ? यदि सरणी 'dtype'' float32' के साथ घोषित की जाती है, तो क्या तत्काल रूपांतरण या प्रसारण में कोई जोखिम है? – Chiel

संबंधित मुद्दे