आप तंत्रिका नेटवर्क आर्किटेक्चर की कल्पना कैसे करते हैं?


79

जब एक पेपर लिखना / किसी विषय के बारे में प्रस्तुति देना जो तंत्रिका नेटवर्क के बारे में है, तो आमतौर पर नेटवर्क वास्तुकला की कल्पना करता है।

स्वचालित रूप से सामान्य आर्किटेक्चर की कल्पना करने के अच्छे / सरल तरीके क्या हैं?




1
मैंने गहन शिक्षण दृश्य दृष्टिकोण (मैनुअल और स्वचालित दोनों) के सर्वेक्षण के साथ जटिल तंत्रिका नेटवर्क के सरल चित्र लिखे । मुझे इस थ्रेड से बहुत प्रेरणा, और लिंक मिले - thx!
पिओर Migdal

जवाबों:


25

टेंसरफ़्लो, केरेस, एमएक्सनेट, पायटर्च

यदि न्यूरल नेटवर्क को टेन्सरफ्लो ग्राफ के रूप में दिया जाता है, तो आप इस ग्राफ को टेंसोरबोर्ड के साथ देख सकते हैं

यहाँ कैसे MNIST CNN दिखता है:

यहाँ छवि विवरण दर्ज करें

आप नाम / स्कोप (जैसे "ड्रॉपआउट", "सॉफ्टमैक्स", "fc1", "conv1", "conv2") स्वयं जोड़ सकते हैं।

व्याख्या

निम्नलिखित केवल बाएं ग्राफ के बारे में है। मैं सही आधे पर 4 छोटे रेखांकन को अनदेखा करता हूं।

प्रत्येक बॉक्स मापदंडों के साथ एक परत है जिसे सीखा जा सकता है। अनुमान के लिए, जानकारी नीचे से ऊपर की ओर बहती है। एलिप्स वे परतें होती हैं जिनमें सीखा हुआ पैरामीटर नहीं होता है।

बक्सों के रंग का कोई अर्थ नहीं है।

मुझे धराशायी छोटे बक्से ("ग्रेडिएंट्स", "एडम", "सेव") के मूल्य पर यकीन नहीं है।


यह अच्छा है, मैं नाम से बचने की कोशिश कर रहा हूं जैसे कि conv1, conv2 आदि, मैं कॉन्फ के रूप में बाद में कनव के सभी नाम बनाना चाहता हूं, मैं कैसे करूंगा ??
सुदीप दास

+1। यह केवल TF के लिए ही नहीं है: MXNet और Pytorch को भी कुछ समर्थन मिला है
Jakub Bartczuk

@SudipDas आप परतों में कोड में नाम जोड़ सकते हैं, जो कि आप इसे प्लॉट करते समय दिखाएंगे।
बेन

मैं प्रत्येक परत का नाम "CONV" कैसे दिखाऊंगा, अगर मैं इसे प्रत्येक परत के "CONV" के रूप में लिखता हूं तो मुझे त्रुटि मिलेगी, क्योंकि प्रत्येक परत का tf नियमों के रूप में एक अद्वितीय नाम होना चाहिए, लेकिन मुझे जो जानना है, वह है इस समस्या को दूर करने का कोई और तरीका है ?? @ बीन
सुदीप दास

1
@ यूनोफ ने लिंक को निर्धारित किया
मार्टिन थोमा

22

मैंने हाल ही में एनएन आर्किटेक्चर को आकर्षित करने और एसवीजी के निर्यात के लिए एक उपकरण बनाया है, जिसे एनएन-एसवीजी कहा जाता है

यहाँ छवि विवरण दर्ज करें


1
डाउनलोड SVG काम नहीं करता है
छवि

मेरे लिए 1/23/19 काम करता है। यदि आपको अभी भी कोई समस्या हो रही है, तो कृपया एक समस्या को खोलने के लिए स्वतंत्र महसूस करें।
एलेक्स लेनेल

1
यह एकमात्र सही उत्तर है
कृत्रिम रूप से

भयानक उपकरण। हालांकि, मैंने देखा कि एलेक्सनेट शैली में, सेंसर के आयामों का गलती से प्रतिनिधित्व किया गया था (चौड़ाई और ऊंचाई के आयाम)
फ्लाईसोफास्ट


11

मैं केआरएस-अनुक्रमिक-एससीआई (अस्वीकरण: मैं लेखक हूं) का उपयोग करके एएससीआईआई विज़ुअलाइज़ेशन जोड़ूंगा

CIFAR-10 ( इस ट्यूटोरियल से ) के लिए एक छोटा नेटवर्क होगा:

       OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)

           Input   #####     32   32    3
          Conv2D    \|/  -------------------       896     2.1%
            relu   #####     30   30   32
    MaxPooling2D   Y max -------------------         0     0.0%
                   #####     15   15   32
          Conv2D    \|/  -------------------     18496    43.6%
            relu   #####     13   13   64
    MaxPooling2D   Y max -------------------         0     0.0%
                   #####      6    6   64
         Flatten   ||||| -------------------         0     0.0%
                   #####        2304
           Dense   XXXXX -------------------     23050    54.3%
         softmax   #####          10

VGG16 के लिए यह होगा:

       OPERATION           DATA DIMENSIONS   WEIGHTS(N)   WEIGHTS(%)

          Input   #####      3  224  224
     InputLayer     |   -------------------         0     0.0%
                  #####      3  224  224
  Convolution2D    \|/  -------------------      1792     0.0%
           relu   #####     64  224  224
  Convolution2D    \|/  -------------------     36928     0.0%
           relu   #####     64  224  224
   MaxPooling2D   Y max -------------------         0     0.0%
                  #####     64  112  112
  Convolution2D    \|/  -------------------     73856     0.1%
           relu   #####    128  112  112
  Convolution2D    \|/  -------------------    147584     0.1%
           relu   #####    128  112  112
   MaxPooling2D   Y max -------------------         0     0.0%
                  #####    128   56   56
  Convolution2D    \|/  -------------------    295168     0.2%
           relu   #####    256   56   56
  Convolution2D    \|/  -------------------    590080     0.4%
           relu   #####    256   56   56
  Convolution2D    \|/  -------------------    590080     0.4%
           relu   #####    256   56   56
   MaxPooling2D   Y max -------------------         0     0.0%
                  #####    256   28   28
  Convolution2D    \|/  -------------------   1180160     0.9%
           relu   #####    512   28   28
  Convolution2D    \|/  -------------------   2359808     1.7%
           relu   #####    512   28   28
  Convolution2D    \|/  -------------------   2359808     1.7%
           relu   #####    512   28   28
   MaxPooling2D   Y max -------------------         0     0.0%
                  #####    512   14   14
  Convolution2D    \|/  -------------------   2359808     1.7%
           relu   #####    512   14   14
  Convolution2D    \|/  -------------------   2359808     1.7%
           relu   #####    512   14   14
  Convolution2D    \|/  -------------------   2359808     1.7%
           relu   #####    512   14   14
   MaxPooling2D   Y max -------------------         0     0.0%
                  #####    512    7    7
        Flatten   ||||| -------------------         0     0.0%
                  #####       25088
          Dense   XXXXX ------------------- 102764544    74.3%
           relu   #####        4096
          Dense   XXXXX -------------------  16781312    12.1%
           relu   #####        4096
          Dense   XXXXX -------------------   4097000     3.0%
        softmax   #####        1000

11

नेट्रॉन नामक एक ओपन सोर्स प्रोजेक्ट है

नेट्रॉन न्यूरल नेटवर्क, डीप लर्निंग और मशीन लर्निंग मॉडल के लिए एक दर्शक है।

नेट्रॉन ONNX (.onnx, .pb), केरस (.h5, .keras), कोरमल (.mlmodel) और टेन्सरफ्लो लाइट (.tflite) का समर्थन करता है। Netron को Caffe (.caffemodel), Caffe2 (predict_net.pb), MXNet (-symbol.json), TensorFlow.js (model.json, .pb) और TensorFlow (.pb, .meta) के लिए प्रयोगात्मक समर्थन प्राप्त है।

यहाँ छवि विवरण दर्ज करें



8

Keras

Keras.utils.vis_utils मॉड्यूल एक (Graphviz का प्रयोग करके) Keras मॉडल साजिश उपयोगिता कार्य प्रदान

निम्नलिखित एक नेटवर्क मॉडल दिखाता है कि पहली छिपी हुई परत में 50 न्यूरॉन्स होते हैं और 104 इनपुट चर की अपेक्षा करते हैं।

plot_model(model, to_file='model.png', show_shapes=True, show_layer_names=True)

यहाँ छवि विवरण दर्ज करें


क्या मैं इसे LaTex संगत प्रारूप में उपयोग कर सकता हूं?
pushpen.paul

8

पायथन पैकेज इस तरह एसवीजी, पीएनजी, या पीआईएल छवियों का उत्पादन करने के लिए conxफ़ंक्शन के साथ सक्रियण नेटवर्क की कल्पना कर सकता है net.picture():

यहाँ छवि विवरण दर्ज करें

कॉनक्स केरस पर बनाया गया है, और केरस के मॉडल में पढ़ सकते हैं। प्रत्येक बैंक के कॉलॉरम को बदला जा सकता है, और यह सभी बैंक प्रकार दिखा सकता है।

अधिक जानकारी यहां पाई जा सकती है: http://conx.readthedocs.io/en/latest/


6

मैं एक ड्रैग-एंड-ड्रॉप न्यूरल नेटवर्क विज़ुअलाइज़र (और अधिक) पर काम कर रहा हूं। यहाँ LeNet जैसी वास्तुकला के लिए एक दृश्य का एक उदाहरण है। एक LeNet की तरह वास्तुकला का एक दृश्य फैन-आउट और फैन-इन वाले मॉडल भी काफी आसानी से मॉडल किए जाते हैं। आप वेबसाइट https://math.mit.edu/ennui/ पर जा सकते हैं


जब ट्रेन
datdinhquoc

1
इसे देखने के लिए धन्यवाद। हां, यह बग अभी हाल ही में पॉप अप हुआ है और लगता है कि क्रोम पर वेबजीएल में कुछ हालिया परिवर्तनों का परिणाम है। सब कुछ फ़ायरफ़ॉक्स पर काम करना चाहिए। अधिक जानकारी होने पर मैं आपको अपडेट करूंगा।
जेसी

tks, आपका विज़ुअलाइज़र अद्भुत है, tf खेल के मैदान से अधिक दिखता है :)
datdinhquoc

1
धन्यवाद! मुझे बताएं कि क्या आपके पास मुद्दे या विचार हैं। हमारे पास कोड पीढ़ी जैसी मजेदार चीजें भी हैं!
जेसी

5

आर में, nnetएक प्लॉट फ़ंक्शन के साथ नहीं आता है, लेकिन उसके लिए कोड यहां प्रदान किया गया है

वैकल्पिक रूप से, आप और अधिक हाल और IMHO बेहतर पैकेज बुलाया उपयोग कर सकते हैं neuralnetजो एक सुविधाओं plot.neuralnetसमारोह है, तो आप सिर्फ कर सकते हैं:

data(infert, package="datasets")
plot(neuralnet(case~parity+induced+spontaneous, infert))

neuralnet

neuralnetज्यादा पुराना होने के nnetकारण nnetइसका उपयोग नहीं किया जाता है और इसे आर-क्रैन के साथ भेज दिया जाता है। लेकिन neuralnetसहित अधिक प्रशिक्षण एल्गोरिदम, है लचीला backpropagation जो Tensorflow तरह संकुल में भी कमी है, और विकल्प hyperparameter करने के लिए बहुत अधिक मजबूत है, और अधिक सुविधाओं के समग्र है।


आपको NNet के कोड के लिए R beckmw.wordpress.com/2013/11/14/…
wacax

4

तंत्रिका नेटवर्क विज़ुअलाइज़ेशन पर कुछ उपन्यास वैकल्पिक प्रयास हैं।

कृपया ये लेख देखें:

तेजस्वी 'एआई ब्रेन स्कैन' से पता चलता है कि नए कौशल सीखने के दौरान कौन सी मशीनें देखती हैं

एक AI 'मस्तिष्क' के अंदर - मशीन लर्निंग क्या दिखता है?

ये दृष्टिकोण तंत्रिका नेटवर्क ऑपरेशन की कल्पना करने के लिए अधिक उन्मुख हैं, हालांकि, एनएन वास्तुकला भी परिणामस्वरूप आरेखों पर कुछ हद तक दिखाई देता है।

उदाहरण:

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


21
कृपया देखें कि हम यहाँ क्या देखते हैं। यह सुंदर लग रहा है, लेकिन मुझे समझ में नहीं आता है कि नेटवर्क के संचालन को समझने में फैंसी छवियां कैसे समर्थन करती हैं।
मार्टिन थोमा

मुझे "फैंसी छवियों" शब्द के आपके अपमानजनक उपयोग पसंद नहीं है। @ मॉर्टिन
विशद

9
मुझे आप पर हमला करने का मतलब नहीं था, लेकिन वास्तव में मेरे सवाल का जवाब दिए बिना आपका अत्यधिक रक्षात्मक जवाब खुद के लिए बोलता है। - मैंने "लेगो बॉक्स" आरेख में एक "व्याख्या" भाग जोड़ा।
मार्टिन थॉमा

1
वैसे: दूसरा लिंक मर चुका है।
मार्टिन थॉमा

4
@MartinThoma यह स्पष्ट रूप से डेटा कला है, न कि डेटा अर्थात ( विसा lacacharlotterost.github.io/2015/12/19/… )।
पिओटर मिग्डल

3

कागजात के लिए प्रति निफ्टी नहीं, लेकिन उन लोगों को दिखाने के लिए बहुत उपयोगी है जो तंत्रिका नेटवर्क के बारे में बहुत कुछ नहीं जानते हैं कि उनकी टोपोलॉजी क्या दिख सकती है। यह जावास्क्रिप्ट लाइब्रेरी (Neataptic) आपको अपने नेटवर्क की कल्पना करने देता है:

यहाँ छवि विवरण दर्ज करें


3

आप डीप विज़ुअलाइज़ेशन के माध्यम से लोकप्रिय पेपर अंडरस्टैंडिंग न्यूरल नेटवर्क्स को पढ़ सकते हैं जो कि कंसट्रक्शनल नेट के विज़ुअलाइज़ेशन पर चर्चा करता है। इसका कार्यान्वयन न केवल प्रत्येक परत को प्रदर्शित करता है, बल्कि सक्रियण, वज़न, डेकोनोवोल्यूशन और कई अन्य चीजों को दर्शाता है जो कागज में गहराई से चर्चा करते हैं। यह कोड में है caffe'। दिलचस्प हिस्सा यह है कि आप पूर्व-प्रशिक्षित मॉडल को अपने साथ बदल सकते हैं।


2

Tensorspace-JS नेटवर्क वास्तुकला के 3 डी दृश्य के लिए एक शानदार उपकरण है:

यहाँ छवि विवरण दर्ज करें

https://tensorspace.org/

और यहाँ कैसे एक कार्यक्रम लिखने के बारे में एक अच्छी पोस्ट है:

https://medium.freecodecamp.org/tensorspace-js-a-way-to-3d-visualize-neural-networks-in-browsers-2c0afd7648a8


क्या आप इस उपकरण का लिंक प्रदान कर सकते हैं?
पियोट्र मिगडाल

1
@PiotrMigdal I ने उत्तर को अपडेट किया।
अली मिर्जाई

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.