इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

TensorFlow क्वांटम डिजाइन

TensorFlow क्वांटम (TFQ) NISQ युग क्वांटम मशीन सीखने की समस्याओं के लिए बनाया गया है। यह क्वांटम कंप्यूटिंग पुरातन की तरह TensorFlow पारिस्थितिकी तंत्र के लिए सर्किट-क्वांटम निर्माण लाता है। मॉडल और संचालन TensorFlow के साथ बनाया गया इन पुरातन का उपयोग शक्तिशाली क्वांटम शास्त्रीय संकर प्रणाली बनाने के लिए।

TFQ का प्रयोग, शोधकर्ताओं ने एक क्वांटम डाटासेट, एक लंबी मॉडल, और शास्त्रीय नियंत्रण मानकों का प्रयोग करके एक TensorFlow ग्राफ निर्माण कर सकते हैं। ये सभी एक ही कम्प्यूटेशनल ग्राफ में tensors के रूप में प्रतिनिधित्व कर रहे हैं। TensorFlow ऑप्स द्वारा शास्त्रीय संभाव्य को क्वांटम माप की अग्रणी के परिणाम की घटनाओं-है प्राप्त की। प्रशिक्षण मानक के साथ किया जाता Keras एपीआई। tfq.datasets मॉड्यूल शोधकर्ताओं नए और दिलचस्प क्वांटम डेटासेट के साथ प्रयोग करने के लिए अनुमति देता है।

Cirq

Cirq गूगल से एक क्वांटम प्रोग्रामिंग रूपरेखा है। यह बुनियादी संचालन-तरह के qubits, द्वार, सर्किट, और माप करने, बनाने को संशोधित करने और के रूप में एक क्वांटम कंप्यूटर, या एक नकली क्वांटम कंप्यूटर पर क्वांटम सर्किट आह्वान के सभी प्रदान करता है। TensorFlow क्वांटम इन Cirq पुरातन का उपयोग करता है बैच गणना, मॉडल निर्माण, और ढाल गणना के लिए TensorFlow विस्तार करने के लिए। TensorFlow क्वांटम के साथ प्रभावी होने के लिए, यह एक अच्छा विचार Cirq के साथ प्रभावी होने के लिए है।

TensorFlow क्वांटम पुरातन

TensorFlow क्वांटम घटकों क्वांटम कंप्यूटिंग हार्डवेयर के साथ TensorFlow एकीकृत करने के लिए आवश्यक लागू करता है। इसके लिए TFQ दो डेटाप्रकार पुरातन का परिचय:

  • क्वांटम सर्किट: यह प्रतिनिधित्व करता Cirq क्वांटम सर्किट (से परिभाषित cirq.Circuit ) TensorFlow के भीतर। अलग-अलग आकार के सर्किट, अलग वास्तविक मूल्य datapoints के बैच के लिए इसी तरह के बैच बनाएँ।
  • पाउली योग: पाउली ऑपरेटरों Cirq (में परिभाषित टेन्सर उत्पादों के रैखिक संयोजन का प्रतिनिधित्व करते हैं cirq.PauliSum )। सर्किट की तरह, आकार बदलती के ऑपरेटरों के बैच पैदा करते हैं।

मौलिक ऑप्स

एक के भीतर क्वांटम सर्किट पुरातन का प्रयोग tf.Tensor , TensorFlow क्वांटम औजार ऑप्स कि इन सर्किट की प्रक्रिया और सार्थक आउटपुट का उत्पादन।

TensorFlow ऑप्स अनुकूलित सी ++ में लिखे गए हैं। सर्किट से ये ऑप्स नमूना, calculate उम्मीद मूल्यों, और उत्पादन राज्य दिया सर्किट द्वारा उत्पादित। ऑप्स कि लचीले होते हैं और performant कुछ चुनौतियां लेखन:

  1. सर्किट एक ही आकार नहीं हैं। नकली सर्किट के लिए, आप स्थिर परिचालन (जैसे बनाने में असमर्थ हैं tf.matmul या tf.add ) और फिर विभिन्न आकार के सर्किट के लिए अलग नंबरों स्थानापन्न। ये ऑप्स गतिशील आकार कि स्थिर आकार TensorFlow गणना ग्राफ की अनुमति नहीं है के लिए अनुमति देनी होगी।
  2. क्वांटम डेटा एक अलग सर्किट संरचना पूरी तरह पैदा कर सकते हैं। एक कारण यह भी TFQ ऑप्स में गतिशील आकार का समर्थन करने के लिए है। क्वांटम डेटा अंतर्निहित प्रमात्रा अवस्था है कि मूल सर्किट में किए गए संशोधन का प्रतिनिधित्व करती है के लिए एक संरचनात्मक परिवर्तन का प्रतिनिधित्व कर सकते हैं। नई datapoints कार्यावधि में अंदर और बाहर लगा दिया जाता था के रूप में, TensorFlow गणना ग्राफ, के बाद यह बनाया गया है बदला नहीं जा सकता इसलिए इन अलग संरचनाओं के लिए समर्थन की आवश्यकता है।
  3. cirq.Circuits में है कि वे संचालन-और कुछ शामिल हो सकता है प्रतीकों / प्लेसहोल्डर की एक श्रृंखला है रेखांकन गणना करने के लिए समान हैं। यह संभव के रूप में TensorFlow के साथ संगत के रूप में इस बनाने के लिए महत्वपूर्ण है।

प्रदर्शन के कारणों के लिए, Eigen (कई TensorFlow ऑप्स में प्रयोग किया जाता सी ++ पुस्तकालय) अच्छी तरह से क्वांटम सर्किट अनुकरण के लिए अनुकूल नहीं है। इसके बजाय, सर्किट में इस्तेमाल किया सिमुलेटर क्वांटम वर्चस्व प्रयोग प्रमाणक के रूप में इस्तेमाल और TFQ ऑप्स की नींव (सभी AVX2 और SSE निर्देश के साथ लिखा जाता है) के रूप में विस्तारित कर रहे हैं। समान कार्यात्मक हस्ताक्षरों के साथ ऑप्स कि उपयोग एक भौतिक क्वांटम कंप्यूटर बनाया गया था। एक नकली और शारीरिक क्वांटम कंप्यूटर के बीच स्विच कोड की एक पंक्ति को बदलने के रूप में के रूप में आसान है। ये ऑप्स में स्थित हैं circuit_execution_ops.py

परतें

TensorFlow क्वांटम परतों नमूने, उम्मीद है, और का उपयोग कर डेवलपर्स के लिए राज्य गणना का पर्दाफाश tf.keras.layers.Layer इंटरफ़ेस। यह शास्त्रीय नियंत्रण मापदंडों के लिए या रीडआउट के संचालन के लिए एक सर्किट परत बनाने के लिए सुविधाजनक है। साथ ही, आप जटिलता बैच सर्किट, बैच नियंत्रण पैरामीटर मान का समर्थन करने का एक उच्च डिग्री के साथ एक परत बनाते हैं, और बैच रीडआउट कार्रवाई कर सकते हैं। देखें tfq.layers.Sample एक उदाहरण के लिए।

डिफ़रेंशियेटर्स

कई TensorFlow संचालन के विपरीत, क्वांटम सर्किट में observables ढ़ाल गणना करने के लिए अपेक्षाकृत आसान हैं कि के लिए फार्मूले जरूरत नहीं है। इसका कारण यह है एक शास्त्रीय कंप्यूटर केवल सर्किट है कि एक क्वांटम कंप्यूटर पर चलाए जा रहे हैं से नमूने पढ़ सकते हैं।

इस समस्या को हल करने के लिए, tfq.differentiators मॉड्यूल कई मानक भेदभाव तकनीक प्रदान करता है। उपयोगकर्ताओं को भी नमूना आधारित उम्मीद गणना की स्थापना के गणना करने के लिए दोनों "वास्तविक दुनिया" ढ़ाल में अपने तरीके होते हैं, और विश्लेषणात्मक सटीक दुनिया परिभाषित कर सकते हैं। परिमित अंतर तरह के तरीके अक्सर एक विश्लेषणात्मक / सटीक वातावरण में सबसे तेजी से (दीवार घड़ी समय) कर रहे हैं। जबकि धीमी (दीवार घड़ी समय), की तरह अधिक व्यावहारिक तरीकों पैरामीटर बदलाव या स्टोकेस्टिक तरीकों अक्सर अधिक प्रभावी हैं। एक tfq.differentiators.Differentiator instantiated है और साथ एक मौजूदा सेशन से जुड़ी generate_differentiable_op , या के निर्माता के लिए पारित tfq.layers.Expectation या tfq.layers.SampledExpectation । एक कस्टम से अलग, से विरासत को लागू करने के tfq.differentiators.Differentiator वर्ग। नमूना या राज्य वेक्टर गणना, उपयोग के लिए एक ढाल आपरेशन को परिभाषित करने के tf.custom_gradient

डेटासेट

क्वांटम कंप्यूटिंग के क्षेत्र विकसित होता है, अधिक मात्रा डेटा और मॉडल संयोजन पैदा होगा, संरचित तुलना और अधिक कठिन बना रही है। tfq.datasets मॉड्यूल क्वांटम मशीन सीखने कार्यों के लिए डेटा स्रोत के रूप में इस्तेमाल किया जाता है। यह मॉडल और प्रदर्शन के लिए संरचित तुलना करता है।

आशा है कि बड़े समुदाय के योगदान के साथ, tfq.datasets मॉड्यूल अनुसंधान कि अधिक पारदर्शी और प्रतिलिपि प्रस्तुत करने योग्य है सक्षम करने के लिए बड़ा हो जाएगा। क्वांटम नियंत्रण, fermionic सिमुलेशन, वर्गीकरण के पास चरण संक्रमण, क्वांटम संवेदन, आदि के अलावा के लिए सभी महान उम्मीदवार हैं: ध्यान में समस्याओं क्यूरेट किया tfq.datasets । प्रस्ताव करने के लिए एक नया डाटासेट एक खोलने GitHub मुद्दे