तंत्रिका नेटवर्क के लिए सबसे अच्छा अजगर पुस्तकालय


130

मैं विभिन्न मशीन सीखने की समस्याओं को हल करने के लिए तंत्रिका नेटवर्क का उपयोग कर रहा हूं। मैं पायथन और पाइब्रेन का उपयोग कर रहा हूं लेकिन यह लाइब्रेरी लगभग बंद है। क्या पायथन में अन्य अच्छे विकल्प हैं?


2
इन्हें भी देखें stackoverflow.com/q/2276933/2359271
एयर

5
और अब एक नया दावेदार है - Scikit Neuralnetwork : क्या किसी के पास अभी तक इसका अनुभव नहीं है? इसकी तुलना Pylearn2 या Theano से कैसे की जाती है?
राफेल_एस्पेरिकेटा

1
@Emre: स्केलेबल उच्च प्रदर्शन के लिए अलग है। इसका आमतौर पर मतलब है कि आप पहले से ही उसी प्रकार के अधिक संसाधन जोड़कर बड़ी समस्याओं को हल कर सकते हैं। स्केलेबिलिटी तब भी जीत जाती है, जब आपके पास 100 मशीनें उपलब्ध हों, भले ही आपका सॉफ्टवेयर उनमें से प्रत्येक पर 20 गुना धीमा हो। । । (हालांकि मैं 5 मशीनों की कीमत चुकाऊंगा और इसमें जीपीयू और मल्टी मशीन स्केल दोनों के फायदे हैं)।
नील स्लेटर

2
तो कई GPU का उपयोग करें ... कोई भी तंत्रिका नेटवर्क में गंभीर काम के लिए CPU का उपयोग नहीं करता है। यदि आप एक अच्छे GPU या दो में से Google-स्तरीय प्रदर्शन प्राप्त कर सकते हैं, तो आप एक हज़ार CPU के साथ क्या करने जा रहे हैं?
एमर

4
मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि यह एक पोस्टर उदाहरण बन गया है कि सिफारिशें और "सर्वश्रेष्ठ" प्रश्न प्रारूप में काम क्यों नहीं करते हैं। स्वीकृत उत्तर तथ्यात्मक रूप से 12 महीनों के बाद गलत है (PyLearn2 उस समय में "सक्रिय विकास" से "स्वीकार करने वाले पैच" तक चला गया है)
नील स्लेटर

जवाबों:


116

अद्यतन: जब से मैंने जुलाई '14 में इस प्रश्न का उत्तर दिया है, तब से परिदृश्य काफी बदल गया है, और कुछ नए खिलाड़ियों ने अंतरिक्ष में प्रवेश किया है। विशेष रूप से, मैं इसकी जाँच करने की सलाह दूंगा:

उनमें से प्रत्येक की अपनी ताकत और कमजोरियां हैं, इसलिए उन सभी को दें और देखें कि आपके उपयोग के मामले में कौन सा सबसे अच्छा है। हालांकि मैंने एक साल पहले PyLearn2 का उपयोग करने की सिफारिश की थी, समुदाय अब सक्रिय नहीं है इसलिए मैं कहीं और देखने की सलाह दूंगा। उत्तर के लिए मेरी मूल प्रतिक्रिया नीचे शामिल है लेकिन इस बिंदु पर काफी हद तक अप्रासंगिक है।


PyLearn2 को आमतौर पर तंत्रिका नेटवर्क और अजगर में गहन सीखने के लिए पसंद की लाइब्रेरी माना जाता है। यह उपयोग में आसानी के बजाय आसान वैज्ञानिक प्रयोग के लिए डिज़ाइन किया गया है, इसलिए सीखने की अवस्था में तेजी है, लेकिन यदि आप अपना समय लेते हैं और ट्यूटोरियल का पालन करते हैं तो मुझे लगता है कि आप इसे प्रदान की गई कार्यक्षमता से खुश होंगे। मानक मल्टीलेयर पर्सेप्ट्रॉन से लेकर प्रतिबंधित बोल्ट्जमैन मशीन से लेकर कॉन्ट्रैक्शनल नेट तक सभी चीजें ऑटोएन्कोडर्स को प्रदान की जाती हैं। बहुत बढ़िया GPU समर्थन है और सब कुछ थीनो के ऊपर बनाया गया है, इसलिए प्रदर्शन आम तौर पर काफी अच्छा है। PyLearn2 के लिए स्रोत जीथब पर उपलब्ध है

ज्ञात रहे कि PyLearn2 में फिलहाल PyBrain की विपरीत समस्या है - छोड़ दिए जाने के बजाय, PyLearn2 सक्रिय विकास के अंतर्गत है और लगातार परिवर्तनों के अधीन है।


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

निश्चित नहीं है कि यदि यह मार्क्स के बारे में है, जैसा कि nolearn के बारे में टिप्पणी करता है, लेकिन github.com/aigamedev/scikit-neuralnetwork भी इस सामान के एक गुच्छा के लिए एक आवरण का कुछ रूप है।
onaclov2000


वाह, यह दो साल से कम समय के बाद बहुत पुराना है
मार्टिन थोमा

1
PyTorch को क्यों छोड़ते हैं?
फ्रांसेस्को पैगोरारो

37

Google द्वारा Tensor Flow ( डॉक्स ) एक और अच्छा ढांचा है जिसमें स्वचालित भेदभाव है। मैंने अपने ब्लॉग पर Google Tensor Flow के बारे में कुछ त्वरित विचार नीचे लिखे हैं , साथ में MNIST उदाहरण जो उनके ट्यूटोरियल में है।

इसे भी देखें: My Tensorflow XOR tutorial

Lasagne ( डॉक्स ) बहुत अच्छा है, क्योंकि यह थीनो (→ आप GPU का उपयोग कर सकते हैं) का उपयोग करता है और इसका उपयोग करने के लिए सरल बनाता है। लासजेन के लेखक ने कागले गैलेक्सी चुनौती जीती, जहां तक ​​मुझे पता है। यह nolearn के साथ अच्छा है । यहाँ एक MNIST उदाहरण नेटवर्क है:

#!/usr/bin/env python

import lasagne
from lasagne import layers
from lasagne.updates import nesterov_momentum
from nolearn.lasagne import NeuralNet

import sys
import os
import gzip
import pickle
import numpy


PY2 = sys.version_info[0] == 2

if PY2:
    from urllib import urlretrieve

    def pickle_load(f, encoding):
        return pickle.load(f)
else:
    from urllib.request import urlretrieve

    def pickle_load(f, encoding):
        return pickle.load(f, encoding=encoding)

DATA_URL = 'http://deeplearning.net/data/mnist/mnist.pkl.gz'
DATA_FILENAME = 'mnist.pkl.gz'


def _load_data(url=DATA_URL, filename=DATA_FILENAME):
    """Load data from `url` and store the result in `filename`."""
    if not os.path.exists(filename):
        print("Downloading MNIST dataset")
        urlretrieve(url, filename)

    with gzip.open(filename, 'rb') as f:
        return pickle_load(f, encoding='latin-1')


def load_data():
    """Get data with labels, split into training, validation and test set."""
    data = _load_data()
    X_train, y_train = data[0]
    X_valid, y_valid = data[1]
    X_test, y_test = data[2]
    y_train = numpy.asarray(y_train, dtype=numpy.int32)
    y_valid = numpy.asarray(y_valid, dtype=numpy.int32)
    y_test = numpy.asarray(y_test, dtype=numpy.int32)

    return dict(
        X_train=X_train,
        y_train=y_train,
        X_valid=X_valid,
        y_valid=y_valid,
        X_test=X_test,
        y_test=y_test,
        num_examples_train=X_train.shape[0],
        num_examples_valid=X_valid.shape[0],
        num_examples_test=X_test.shape[0],
        input_dim=X_train.shape[1],
        output_dim=10,
    )


def nn_example(data):
    net1 = NeuralNet(
        layers=[('input', layers.InputLayer),
                ('hidden', layers.DenseLayer),
                ('output', layers.DenseLayer),
                ],
        # layer parameters:
        input_shape=(None, 28*28),
        hidden_num_units=100,  # number of units in 'hidden' layer
        output_nonlinearity=lasagne.nonlinearities.softmax,
        output_num_units=10,  # 10 target values for the digits 0, 1, 2, ..., 9

        # optimization method:
        update=nesterov_momentum,
        update_learning_rate=0.01,
        update_momentum=0.9,

        max_epochs=10,
        verbose=1,
        )

    # Train the network
    net1.fit(data['X_train'], data['y_train'])

    # Try the network on new data
    print("Feature vector (100-110): %s" % data['X_test'][0][100:110])
    print("Label: %s" % str(data['y_test'][0]))
    print("Predicted: %s" % str(net1.predict([data['X_test'][0]])))


def main():
    data = load_data()
    print("Got %i testing datasets." % len(data['X_train']))
    nn_example(data)

if __name__ == '__main__':
    main()

कैफ एक C ++ लाइब्रेरी है, लेकिन पाइथन बाइंडिंग है। आप कॉन्फ़िगरेशन फ़ाइलों (प्रोटोटेक्स्ट) द्वारा अधिकांश सामान कर सकते हैं। इसमें बहुत सारे विकल्प हैं और यह GPU का उपयोग भी कर सकता है।


22

Pylearn Theano पर निर्भर करता है और जैसा कि लाइब्रेरी का उपयोग करने के लिए अन्य उत्तर में उल्लेख किया गया है, जब तक आप इसे पकड़ नहीं लेते, तब तक यह काफी जटिल है।

इस बीच मैं Theanets का उपयोग करने का सुझाव दूंगा । यह थीनो के शीर्ष पर भी बनाया गया था, लेकिन इसके साथ काम करना बहुत आसान है। यह सच हो सकता है, कि इसमें Pylearn की सभी विशेषताएं नहीं हैं, लेकिन मूल काम के लिए यह पर्याप्त है।

इसके अलावा यह खुला स्रोत है, इसलिए यदि आप हिम्मत करते हैं तो आप मक्खी पर कस्टम नेटवर्क जोड़ सकते हैं। :)

संपादित करें: दिसंबर 2015। हाल ही में मैंने केर का उपयोग शुरू किया है । यह थिएनेट की तुलना में थोड़ा निचला स्तर है, लेकिन बहुत अधिक शक्तिशाली है। बुनियादी परीक्षणों के लिए Theanets उपयुक्त है। लेकिन अगर आप एएनएन केरस के क्षेत्र में कुछ शोध करना चाहते हैं तो यह अधिक लचीला है। इसके अलावा केर एक बैकेंड के रूप में टेन्सरफ्लो का उपयोग कर सकते हैं ।


19

TensorFlow (Google द्वारा, 2015-11-09 को जारी किया गया) आशाजनक लग रहा है।

  • खुला स्रोत (Apache 2.0 लाइसेंस) ( GitHub )
  • अजगर (C ++ में बैकेंड)
  • CPU / GPU
  • ऑटो-विभेदन
  • पोर्टेबल (मोबाइल उपकरणों पर भी काम करता है)

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

जानकारी के लिए:


3
Aargh! आप मुझे इसके लिए हरा देते हैं :) वास्तव में, TensorFlow सुपर अच्छा है। वहाँ बाहर थेनो, मशाल, आदि जैसे बड़ी बंदूकों से बेहतर संकलन समय है
Dawny33

@ Dawny33 "संकलन समय" से आपका क्या अभिप्राय है? थीनो, टार्च और ज्यादातर समय टेंसोरफ्लो का उपयोग एक व्याख्या किए गए फैशन में किया जाता है।
मार्टिन थोमा

@ कम से कम थीनो में, कुछ कोड C ++ या CUDA में संकलित हैं।
फ्रेंक डर्नोनकोर्ट

@FranckDernoncourt ठीक है, लेकिन क्या यह समय वाकई मायने रखता है? जब आपके पास लगभग 20 मिनट तक चलने वाला प्रशिक्षण होता है, तो CUDA कोड उत्पन्न करने के लिए केवल कुछ सेकंड का समय नहीं होता है? (मैं इसे कैसे माप सकता हूं?)
मार्टिन थोमा

2
@moose थीनो में CUDA / C ++ कोड जनरेट करने में लगभग 30 सेकंड से एक मिनट तक का समय लगता है। यह डिबगिंग को काफी थकाऊ बनाता है। CUDA / C ++ कोड जनरेशन समय को मापने के लिए, आप एक थीनो फ़ंक्शन संकलित करने से पहले / बाद में कर सकते हैं।
फ्रेंक डर्नोनकोर्ट

8

Pylearn2 को पसंद की लाइब्रेरी लगती है, हालाँकि मुझे उनकी YAML कॉन्फ़िगरेशन फ़ाइलें ऑफ़-पुट लगती हैं।

पायथन स्वयं ही प्रोटोटाइप के लिए एक आसान भाषा होने के लिए डिज़ाइन किया गया था, आप इसका उपयोग स्वयं नेटवर्क गुणों को परिभाषित करने के लिए क्यों नहीं करेंगे ? हमारे पास स्वत: पूर्णता के साथ महान संपादक हैं जो आपके जीवन को बहुत आसान बना देंगे और पायथन सी ++ की तरह नहीं है जहां आपको अपना कोड चलाने से पहले लंबे समय तक निर्माण के लिए इंतजार करना होगा।

दूसरी ओर YAML फाइलें जो आपको बिना किसी सहायता के एक मानक पाठ संपादक का उपयोग करके संपादित करना है और यह सीखने की अवस्था को और भी कठोर बनाता है।

मुझे बड़ी तस्वीर याद आ रही है, लेकिन मुझे अभी भी समझ में नहीं आ रहा है कि वे क्या सोच रहे थे, मुझे नहीं लगता कि कोड में प्रोटोटाइप बहुत धीमा होगा। इस कारण से मैं थिनसेट पर विचार कर रहा हूं या सीधे थीनो का उपयोग कर रहा हूं।


1
मैं भी पहली बार में YAML फ़ाइलों द्वारा थोड़ा सा फेंक दिया गया था, लेकिन तब से कॉन्फ़िगरेशन और कोड के बीच स्वच्छ अलगाव को प्यार करने लगा हूं। आप YAML फ़ाइलों के बिना Pylearn2 का उपयोग करना चुन सकते हैं, हालांकि यह विकल्प अच्छी तरह से प्रलेखित नहीं है।
मैडिसन मई

संक्षेप में, हालांकि, मैं इस सरल डिजाइन निर्णय के कारण पुस्तकालय को नहीं छोड़ूंगा।
मैडिसन मई

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

8

मुझे ब्लॉक पसंद हैं , जो थीनो के ऊपर भी बनाया गया है। PyLearn2 की तुलना में अधिक स्वीकार्य है, और Lasagne से अधिक समृद्ध है। खूब लिखा है, भी।

अपडेट किया गया जनवरी 2016:

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


हाँ, मैं वर्तमान में pylearn2 पर आज ब्लॉक की सिफारिश करूँगा यदि आप थीनो को समझने में थोड़ा समय लगा रहे हैं।
मैडिसन मई

महान लोगों द्वारा निर्मित महान पुस्तकालय।
मैडिसन मई

6

एमएक्सनेट :

  • C ++ में लिखा गया है, लेकिन पाइथन में एक एपीआई है (और कुछ अन्य प्रोग्रामिंग भाषाओं जैसे कि आर, जूलिया और गो)
  • मल्टी जीपीयू तक स्केल और ऑटो समानता के साथ सेटिंग वितरित।
  • स्वचालित भेदभाव
  • निर्णायक प्रदर्शन:

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


5

मैंने जो सुना, उससे Pylearn2 वर्तमान में ज्यादातर लोगों की पसंद का पुस्तकालय हो सकता है। यह मुझे कुछ महीने पहले के एक हालिया ब्लॉग पोस्ट की याद दिलाता है जो एक संक्षिप्त विवरण के साथ सभी विभिन्न मशीन लर्निंग लाइब्रेरी को सूचीबद्ध करता है

https://www.cbinsights.com/blog/python-tools-machine-learning

जिस अनुभाग में आपकी रुचि हो सकती है वह "डीप लर्निंग" होगा। Pylearn2 के बारे में, वह लिखते हैं

PyLearn2

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


5

मैंने अपने व्यक्तिगत पसंदीदा में से कुछ का विस्तार करते हुए इस पोस्ट को लिखा:

पायथन में सर्वश्रेष्ठ मशीन लर्निंग लाइब्रेरी

चूंकि 30 से अधिक विभिन्न पुस्तकालयों का उल्लेख किया गया है, इसलिए मैं उन सभी को यहां पोस्ट नहीं करूंगा, लेकिन ये सबसे लोकप्रिय हैं:

(क्षमा करें, Github repos से लिंक नहीं कर सकता क्योंकि मेरा प्रतिनिधि अभी भी <10 है ...)

संपादित करें: Github repos के लिंक जोड़े गए।


क्या आप यहाँ मेरी टिप्पणी के तहत लिंक पर टिप्पणी कर सकते हैं? मैं संपादित करें और अपने जवाब में जोड़ने जाएगा
Dawny33

अब जब मेरा उत्तर रद्द कर दिया गया था, मेरे पास अब आवश्यक प्रतिनिधि है और लिंक जोड़ने में सक्षम था। हालांकि धन्यवाद!
15-30 पर srobinson

क्या आपको यकीन है कि scikit-learn एक DN पैकेज है?
स्मॉलचेयर

4

नियॉन :


4

बस कुछ और संसाधन जोड़ने के लिए। हाल ही में तंत्रिका नेटवर्क और गहरे तंत्रिका नेटवर्क के कई पैकेजों के बीच के अंतर का अध्ययन करने वाला एक पेपर था।

यहां आप जानकारी पा सकते हैं । ऐसा लगता है कि मशाल और टेंसोरफ्लो विजेता हैं।

नोट: उनमें से सभी अजगर में नहीं हैं। हालाँकि, मैंने इसे चर्चा खोलने के लिए पोस्ट किया था।


2

Microsoft अनुभूति टूलकिट (पहले जिसे CNTK के रूप में जाना जाता है) में पायथन एपीआई है । अन्य बातों के अलावा, यह बहु-GPU के लिए अच्छा माना जाता है :

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

उदाहरण और ट्यूटोरियल https://github.com/Microsoft/CNTK/tree/master/bindings/python पर देखे जा सकते हैं


2

डायनेट: डायनेमिक न्यूरल नेटवर्क टूलकिट। 1 से}:

हम नेटवर्क संरचना की गतिशील घोषणा के आधार पर तंत्रिका नेटवर्क मॉडल को लागू करने के लिए टूलकिट DyNet का वर्णन करते हैं। थीनो, CNTK, और TensorFlow जैसे टूलकिट में उपयोग की जाने वाली स्थैतिक घोषणा रणनीति में, उपयोगकर्ता पहले एक गणना ग्राफ (गणना का एक प्रतीकात्मक प्रतिनिधित्व) को परिभाषित करता है, और फिर उदाहरणों को एक इंजन में खिलाया जाता है जो इस गणना को निष्पादित करता है और इसके डेरिवेटिव की गणना करता है। । डायनेट की डायनेमिक डिक्लेरेशन स्ट्रैटेजी में, कम्प्यूटेशन ग्राफ का निर्माण ज्यादातर पारदर्शी होता है, जिसका अर्थ है कि नेटवर्क आउटपुट की गणना करने वाले प्रक्रियात्मक कोड को निष्पादित करके निर्माण किया जाता है, और उपयोगकर्ता प्रत्येक इनपुट के लिए विभिन्न नेटवर्क संरचनाओं का उपयोग करने के लिए स्वतंत्र है। गतिशील घोषणा इस प्रकार अधिक जटिल नेटवर्क आर्किटेक्चर के कार्यान्वयन की सुविधा प्रदान करती है, और DyNet को विशेष रूप से उपयोगकर्ताओं को अपने पसंदीदा प्रोग्रामिंग भाषा (C ++ या पायथन) में मुहावरेदार बनाने के लिए अपने मॉडल को लागू करने की अनुमति देने के लिए डिज़ाइन किया गया है। गतिशील घोषणा के साथ एक चुनौती यह है कि क्योंकि प्रतीकात्मक गणना ग्राफ हर प्रशिक्षण उदाहरण के लिए नए सिरे से परिभाषित किया गया है, इसके निर्माण में कम ओवरहेड होना चाहिए। इसे प्राप्त करने के लिए, DyNet में एक अनुकूलित C ++ बैकएंड और हल्का ग्राफ प्रतिनिधित्व है। प्रयोगों से पता चलता है कि DyNet की गति स्थिर घोषणा टूलकिट्स की तुलना में तेज या तुलनीय है, और Chainer, एक और गतिशील घोषणा टूलकिट की तुलना में काफी तेज है। डायनेट को अपाचे 2.0 लाइसेंस के तहत खुला स्रोत जारी किया गया है और यह उपलब्ध है गतिशील घोषणा के साथ एक चुनौती यह है कि क्योंकि प्रतीकात्मक गणना ग्राफ हर प्रशिक्षण उदाहरण के लिए नए सिरे से परिभाषित किया गया है, इसके निर्माण में कम ओवरहेड होना चाहिए। इसे प्राप्त करने के लिए, DyNet में एक अनुकूलित C ++ बैकएंड और हल्का ग्राफ प्रतिनिधित्व है। प्रयोगों से पता चलता है कि DyNet की गति स्थिर घोषणा टूलकिट्स की तुलना में तेज या तुलनीय है, और Chainer, एक और गतिशील घोषणा टूलकिट की तुलना में काफी तेज है। डायनेट को अपाचे 2.0 लाइसेंस के तहत खुला स्रोत जारी किया गया है और यह उपलब्ध है गतिशील घोषणा के साथ एक चुनौती यह है कि क्योंकि प्रतीकात्मक गणना ग्राफ हर प्रशिक्षण उदाहरण के लिए नए सिरे से परिभाषित किया गया है, इसके निर्माण में कम ओवरहेड होना चाहिए। इसे प्राप्त करने के लिए, DyNet में एक अनुकूलित C ++ बैकएंड और हल्का ग्राफ प्रतिनिधित्व है। प्रयोगों से पता चलता है कि DyNet की गति स्थिर घोषणा टूलकिट्स की तुलना में तेज या तुलनीय है, और Chainer, एक और गतिशील घोषणा टूलकिट की तुलना में काफी तेज है। डायनेट को अपाचे 2.0 लाइसेंस के तहत खुला स्रोत जारी किया गया है और यह उपलब्ध हैयह http URL

इसे पहले cnn के रूप में जाना जाता था (जिसका अजगर बंधन को pycnn नाम दिया गया था)।


संदर्भ:

  • {1} ग्राहम न्युबिग, क्रिस डायर, योव गोल्डबर्ग, ऑस्टिन मैथ्यूज, वलीद अम्मार, एंटोनियोस अनास्तासोपोलोस, मिगुएल बल्लेस्टेरोस, डेविड चियांग, डैनियल क्लोथियाक्स, ट्रेवर कोहन, केविन दुह, मानल फारुकी, सिंथिया गण, डैन गैरेट, यांगफेंग, लिन्गेंग। , अधुना कुनकोरो, गौरव कुमार, चैतन्य मालवीय, पॉल मिशेल, युसुके ओडा, मैथ्यू रिचर्डसन, नाओमी सपरा, स्वाभा स्वयंपिप्ता, पेंगचेंग यिन। डायनेट: डायनेमिक न्यूरल नेटवर्क टूलकिट। https://arxiv.org/abs/1701.03980

2

मैं आपको टेंसरफ़्लो का उपयोग करने की सलाह देता हूं जो कि मजबूत विकास के अंतर्गत है और गहरी शिक्षा का समर्थन करता है। आप उच्च स्तर के तंत्रिका नेटवर्क एपीआई का उपयोग कर सकते हैं Keras कि tensorflow के शीर्ष पर चलता है और बहुत बस का उपयोग करना है, बस एक कोशिश ट्यूटोरियल और आप इसे प्यार करने के लिए जा रहे हैं।


2

PyTorch

मूल पायथन के साथ इसके उपयोग में आसानी और समानता के कारण इसे बहुत समर्थन मिल रहा है।

यह "लाइन-बाय-लाइन" (गतिशील ग्राफ़ के माध्यम से) चलाता है, सामान्य पायथन की तरह और आसानी से डिबग किया जा सकता है - यहां तक ​​कि मानक प्रिंट स्टेटमेंट का उपयोग करके। यह NumPy और अन्य प्रसिद्ध पायथन लिनब्रियों के साथ बहुत अच्छी तरह से एकीकृत होता है, जैसे Scikit Learn।

क्योंकि यह मॉडलिंग को आसान बनाता है, इसलिए यह प्रोटोटाइप बनाने और नए विचारों को सामान्य रूप से एक्सप्लोर करने के लिए बहुत अच्छा है।

यह कई GPU का समर्थन करता है और वास्तव में आसान तरीके से ऐसा करता है।

की जाँच करें यहाँ और अधिक सुविधाओं


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


1

आप प्रदर्शन की तुलना में रुचि रखते हैं, Soumith Chintala convnet मानक है कि पहले ही उल्लेख किया अजगर चौखटे (के कई कवर का एक सेट का कहना है TensorFlow , chainer , नीयन , थेनो ):


यह एक महान उपकरण है!
फेडेरिको कैसिया

1

NeuPy कृत्रिम तंत्रिका नेटवर्क के लिए एक पायथन पुस्तकालय है। NeuPy कई अलग-अलग प्रकार के न्यूरल नेटवर्क्स का समर्थन करता है, जो एक साधारण अवधारणात्मक से लेकर गहरे शिक्षण मॉडल तक होता है।

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