థియానో ​​వర్సెస్ టెన్సార్ ఫ్లో: ఎ క్విక్ కంపారిజన్ ఆఫ్ ఫ్రేమ్‌వర్క్స్



థియానో ​​వర్సెస్ టెన్సార్‌ఫ్లో ఈ వ్యాసం మీకు రెండు ఫ్రేమ్‌వర్క్‌ల మధ్య చిన్న మరియు స్ఫుటమైన పోలికను అందిస్తుంది మరియు మీకు సరిపోయేదాన్ని ఎంచుకోవడంలో మీకు సహాయపడుతుంది.

యొక్క యుగం లోతైన అభ్యాసం మరియు దాని గరిష్ట స్థాయిలో ఉంది. ఇది సృష్టించబోతోంది 2.3 మిలియన్లు 2020 నాటికి ఉద్యోగాలు. ప్రతి నెలా కొత్త ఫ్రేమ్‌వర్క్‌లు రావడంతో, టెన్సార్‌ఫ్లో మరియు థియానో ​​కొంతకాలం అక్కడే ఉన్నారు మరియు మంచి ప్రజాదరణను పొందారు. కాబట్టి ఈ థియానో ​​వర్సెస్ టెన్సార్ ఫ్లో వ్యాసంలో, నేను ఈ క్రింది విషయాలను చర్చిస్తాను:

థియానో ​​అంటే ఏమిటి?

థియానోను లైబ్రరీగా నిర్వచించవచ్చు సైంటిఫిక్ కంప్యూటింగ్ . దీనిని యూనివర్సిటీ డి మాంట్రియల్ అభివృద్ధి చేసింది మరియు ఇది 2007 నుండి అందుబాటులో ఉంది.





theano-logo

బహుళ-డైమెన్షనల్ శ్రేణులను కలిగి ఉన్న గణిత వ్యక్తీకరణలను సమర్థవంతంగా నిర్వచించడానికి, ఆప్టిమైజ్ చేయడానికి మరియు అంచనా వేయడానికి ఇది మిమ్మల్ని అనుమతిస్తుంది. ఇది CPU మరియు GPU రెండింటిలోనూ నడుస్తుంది.



టెన్సార్ ఫ్లో అంటే ఏమిటి?

టెన్సర్ ఫ్లో అనేక రకాల పనులలో డేటాఫ్లో ప్రోగ్రామింగ్ కోసం గూగుల్ బ్రెయిన్ చేత ఓపెన్ సోర్స్ సాఫ్ట్‌వేర్ లైబ్రరీ.

ఇది సింబాలిక్ మ్యాథ్ లైబ్రరీ, ఇది యంత్ర అభ్యాస అనువర్తనాల కోసం ఉపయోగించబడుతుంది .



థియానో ​​vs టెన్సార్ ఫ్లో

మేము కింది కొలమానాల ఆధారంగా థియానో ​​వర్సెస్ టెన్సార్ ఫ్లోను పోల్చి చూస్తాము:

ప్రజాదరణ:

థియానో టెన్సర్ ఫ్లో
థియానో ​​పాత ముసాయిదా అంత ప్రజాదరణ పొందలేదు మధ్య , పరిశోధకులు. ఇది ఒకప్పుడుటెన్సార్ ఫ్లో చేతులు క్రిందికి ఉంది అత్యంత ప్రసిద్ధమైనది డీప్ లెర్నింగ్ ఫ్రేమ్‌వర్క్ మరియు చాలా పరిశోధనలలో ఉపయోగించబడుతుంది.

అమలు వేగం:

థియానో టెన్సర్ ఫ్లో
టెన్సార్ ఫ్లో కంటే వేగంగా పనులు నిర్వహిస్తుంది. ముఖ్యంగా సింగిల్ GPU టాస్క్‌లు థియానోలో వేగంగా నడుస్తాయి.థియానోతో పోలిస్తే టెన్సార్ ఫ్లో యొక్క ఎగ్జిక్యూషన్ వేగం నెమ్మదిగా ఉంటుంది, కానీ మల్టీ-జిపియు టాస్క్లలో ఇది లీడ్ తీసుకుంటుంది.

సాంకేతిక ప్రయోజనాలు:

జావాలో చార్ యొక్క డిఫాల్ట్ విలువ

థియానో టెన్సర్ ఫ్లో
ఇది విస్తృత శ్రేణి ఆపరేషన్లకు మద్దతు ఇస్తుంది.

నిర్ణయించేటప్పుడు థియానో ​​ప్రవణతను లెక్కిస్తుంది లోపం.

మీరు హార్డ్ కోడ్ చేయవలసి ఉన్నందున మీకు ఆప్టిమైజర్లపై పూర్తి నియంత్రణ ఉంటుంది.

టెన్సార్ ఫ్లో ఇంకా థియానోతో సమానంగా రావాలి.

టెన్సార్ ఫ్లో విషయంలో అలా కాదు

ఇది బాక్స్ వెలుపల చాలా మంచి ఆప్టిమైజర్లకు ప్రాప్తిని ఇస్తుంది. ఇది కోడింగ్‌ను సులభతరం చేస్తుంది

అనుకూలత:

థియానో టెన్సర్ ఫ్లో
కేరాస్ అద్భుతమైన డీప్ లెర్నింగ్ లైబ్రరీ థియానోకు అనుకూలంగా ఉంది. ఇది బాగా కలిసిపోతుంది.

దీనికి స్థానిక విండోస్ సపోర్ట్ ఉంది.

ఇది లాసాగ్నే వంటి హై-లెవల్ రేపర్లకు కూడా మద్దతు ఇస్తుంది.

టెన్సార్ ఫ్లో విషయంలో, ఇది ఇంకా అంతగా లేదు. అయితే, v2.0 లో ఇది అలా ఉండదు.

ప్రస్తుతం, టెన్సార్‌ఫ్లో ఈ మద్దతు లేదు.

లాసాగ్నేకు మద్దతు లేదు.

సంఘం మద్దతు:

జావాలో ప్రతిష్ఠంభనను ఎలా నివారించాలి

థియానో టెన్సర్ ఫ్లో
టెన్సార్‌ఫ్లో ముందు వచ్చినందున థియానోకు పెద్ద కమ్యూనిటీ మద్దతు ఉంది.

ఇది టెన్సార్ ఫ్లో కంటే ఎక్కువ డాక్యుమెంటేషన్ కలిగి ఉంది

టెన్సార్‌ఫ్లో యొక్క ఆన్‌లైన్ కమ్యూనిటీ మద్దతు దాని జనాదరణతో వేగంగా పెరుగుతోంది.

డాక్యుమెంటేషన్ తులనాత్మకంగా తక్కువ.

కోడ్ రీడబిలిటీ:

వారి కోడ్ ఆధారంగా థియానో ​​వర్సెస్ టెన్సార్ ఫ్లోను పోల్చండి. ఇక్కడ నేను ఒక ప్రాథమిక ఉదాహరణ స్క్రిప్ట్‌ను తీసుకుంటున్నాను, అక్కడ మేము కొన్ని ఫోనీ డేటాను తీసుకుంటాము మరియు ఆ డేటాకు ఉత్తమమైన ఫిట్‌నెస్‌ను ప్రారంభిస్తాము, తద్వారా ఇది భవిష్యత్ డేటా పాయింట్లను అంచనా వేయగలదు.

థియానో ​​కోడ్:

దిగుమతి థియానో ​​దిగుమతి theano.tensor ను T దిగుమతి సంఖ్యగా # మళ్ళీ, 100 పాయింట్లను నంపీ x_data = numpy.float32 (numpy.random.rand (2, 100%) లో చేయండి y_data = numpy.dot ([0.100, 0.200], x_data) + 0.3 # థియోనో మోడల్ X = T.matrix () Y = T.vector () b = theano.shared (numpy.random.uniform (-1, 1), name = 'b') W = theano.shared ( numpy.random.uniform (-1.0, 1.0, (1, 2)), పేరు = 'W') y = W.dot (X) + b # ప్రవణతలను లెక్కించండి WRT ప్రతి పరామితి ఖర్చుకు సగటు-స్క్వేర్డ్-లోపం = T.mean (T.sqr (y - Y)) gradientW = T.grad (cost = cost, wrt = W) gradientB = T.grad (cost = cost, wrt = b) నవీకరణలు = [[W, W - gradientW * 0.5], [b, b - gradientB * 0.5]] రైలు = theano.function (ఇన్‌పుట్‌లు = [X, Y], అవుట్‌పుట్‌లు = ఖర్చు, నవీకరణలు = నవీకరణలు, allow_input_downcast = ట్రూ) నేను xrange (0, 201) లో: రైలు (x_data, y_data) ముద్రణ W.get_value (), b.get_value ()

సమానమైన టెన్సార్ ఫ్లో కోడ్:

టెన్సార్‌ఫ్లోను టిఎఫ్ దిగుమతి నంపీని np వలె దిగుమతి చేయండి # NumPy లో 100 ఫోనీ డేటా పాయింట్లను చేయండి. x_data = np.float32 (np.random.rand (2, 100%)) # యాదృచ్ఛిక ఇన్పుట్ y_data = np.dot ([0.100, 0.200], x_data) + 0.300 # సరళ నమూనాను నిర్మించండి. b = tf.Variable (tf.zeros ([1])) W = tf.Variable (tf.random_uniform ([1, 2], -1.0, 1.0%) y = tf.matmul (W, x_data) + b # స్క్వేర్డ్ లోపాలను తగ్గించండి. loss = tf.reduce_mean (tf.square (y - y_data)) ఆప్టిమైజర్ = tf.train.GradientDescentOptimizer (0.5) train = optimizer.minimize (loss) # వేరియబుల్స్ ప్రారంభించడం కోసం. init = tf.initialize_all_variables () # గ్రాఫ్‌ను ప్రారంభించండి sess = tf.Session () sess.run (init) # విమానం అమర్చండి. xrange (0, 201) లో దశ కోసం: sess.run (రైలు) దశ% 20 == 0 అయితే: ప్రింట్ స్టెప్, sess.run (W), sess.run (b) # ఉత్తమంగా సరిపోతుందని తెలుసుకోవడం W: [[0.100 0.200]], బి: [0.300]

పొడవు వైజ్ కోడ్ రెండూ దాదాపు ఉన్నాయి ఇలాంటిది చాలా తేడా లేదు. ఒకేలా ఉత్పత్తి చేయబడిన రెండు ఇన్పుట్ మరియు లక్ష్య అవుట్పుట్ను వివరించే శ్రేణులు. మేము మోడల్ ఇనిషియలైజేషన్ వద్ద చూస్తే.

మోడల్ ప్రారంభించడం:

# టెన్సార్ ఫ్లో b = tf.Variable (tf.zeros ([1])) W = tf.Variable (tf.random_uniform ([1, 2], -1.0, 1.0%) y = tf.matmul (W, x_data) + b # థియానో ​​X = T.matrix () Y = T.vector () b = theano.shared (numpy.random.uniform (-1, 1), name = 'b') W = theano.shared (numpy.random .యూనిఫాం (-1.0, 1.0, (1, 2)), పేరు = 'W') y = W.dot (X) + b

టెన్సార్ ఫ్లోకు X మరియు Y వేరియబుల్స్ యొక్క ప్రత్యేక చికిత్స అవసరం లేదని మీరు ఇక్కడ చూడవచ్చు. మరోవైపు, వేరియబుల్స్ ఉన్నాయని నిర్ధారించుకోవడానికి థియానోకు అదనపు ప్రయత్నం అవసరం సింబాలిక్ ఇన్‌పుట్‌లు ఫంక్షన్‌కు. B మరియు W యొక్క నిర్వచనం వివరణాత్మకమైనది మరియు మంచిది.

అభ్యాసం: ఆప్టిమైజేషన్

# టెన్సార్‌ఫ్లో నష్టం = tf.reduce_mean (tf.square (y - y_data)) # (1) ఆప్టిమైజర్ = tf.train.GradientDescentOptimizer (0.5) # (2) రైలు = ఆప్టిమైజర్.మినిమైజ్ (నష్టం) # (3) # థియోనో ఖర్చు = T.mean (T.sqr (y - Y)) # (1) gradientW = T.grad (cost = cost, wrt = W) # (2) gradientB = T.grad (cost = cost, wrt = b) # (2) నవీకరణలు = [[W, W - gradientW * 0.5], [b, b - gradientB * 0.5]] # (2) రైలు = theano.function (ఇన్‌పుట్‌లు = [X, Y], అవుట్‌పుట్‌లు = ఖర్చు, నవీకరణలు = నవీకరణలు, allow_input_downcast = నిజం) # (3)

(1) కోసం MSE థియానో ​​వర్సెస్ టెన్సార్ ఫ్లోకు దాదాపు ఒకే విధంగా ఉంటుంది.

(2) కోసం ఆప్టిమైజర్ టెన్సార్ ఫ్లో విషయంలో ఇది చాలా సులభం మరియు సరళమైనది, కానీ థియన్నో మీకు చాలా ఎక్కువ నియంత్రణను ఇస్తుంది, అయితే ఇది చాలా పొడవుగా ఉంది మరియు ధృవీకరణ ప్రయత్నాన్ని పెంచుతుంది.

(3) కోసం శిక్షణ ఫంక్షన్ కోడ్ దాదాపు సమానంగా ఉంటుంది

శిక్షణా సంస్థ:

Xrange (0, 201) లో అడుగు కోసం # టెన్సార్ ఫ్లో init = tf.initialize_all_variables () sess = tf.Session () sess.run (init): sess.run (రైలు) # xrange (0, 201) లో i కోసం థియోనో: రైలు (x_data, y_data) ముద్రణ W.get_value (), b.get_value ()

శిక్షణ కోసం కోడ్ దాదాపు ఒకేలా ఉంటుంది, కానీ సెషన్ ఆబ్జెక్ట్‌లో గ్రాఫ్ ఎగ్జిక్యూషన్‌ను ఎన్‌క్యాప్సులేట్ చేయడం సంభావితంగా క్లీనర్ థియానో ​​కంటే.

తుది తీర్పు: థియానో ​​వర్సెస్ టెన్సార్ ఫ్లో

ముగింపు నోట్లో, రెండు API లు a కలిగి ఉన్నాయని చెప్పవచ్చు సారూప్య ఇంటర్ఫేస్ . కానీ టెన్సార్ ఫ్లో తులనాత్మకంగా ఉంది సులభం ఇది చాలా పర్యవేక్షణ మరియు డీబగ్గింగ్ సాధనాలను అందిస్తుంది కాబట్టి మీరు వాడండి. థియానో ​​లీడ్ ఇన్ తీసుకుంటుంది వినియోగం మరియు వేగం , కానీ టెన్సార్ ఫ్లో విస్తరణకు బాగా సరిపోతుంది. వ్రాతపని లేదా డాక్యుమెంటేషన్ ఎందుకంటే థియానో ​​టెన్సార్‌ఫ్లో కంటే ఎక్కువ మరియు టెన్సార్‌ఫ్లో క్రొత్త భాష కావడం వల్ల ప్రారంభించడానికి చాలా వనరులు లేవు. కేరాస్, లాసాగ్నే మరియు బ్లాక్స్ వంటి ఓపెన్ సోర్స్ డీప్-లైబ్రరీలు ఉన్నాయి పైన నిర్మించబడింది థియానో.

ఏ ఫ్రేమ్‌వర్క్‌ను ఎంచుకోవాలో నిర్ణయించుకోవడానికి ఈ పోలిక సరిపోతుందని నేను ఆశిస్తున్నాను, చూడండి ప్రపంచవ్యాప్తంగా 250,000 కంటే ఎక్కువ సంతృప్తికరమైన అభ్యాసకుల నెట్‌వర్క్‌తో విశ్వసనీయ ఆన్‌లైన్ లెర్నింగ్ సంస్థ ఎడురేకా చేత. ఈ సర్టిఫికేషన్ శిక్షణ పరిశ్రమ అవసరాలు & డిమాండ్ల ప్రకారం పరిశ్రమ నిపుణులచే నిర్వహించబడుతుంది. మీరు సాఫ్ట్‌మాక్స్ ఫంక్షన్, ఆటోఎన్‌కోడర్ న్యూరల్ నెట్‌వర్క్‌లు, పరిమితం చేయబడిన బోల్ట్‌జ్మాన్ మెషిన్ (ఆర్‌బిఎం) వంటి అంశాలను నేర్చుకుంటారు మరియు కేరాస్ & టిఎఫ్ లెర్న్ వంటి లైబ్రరీలతో పని చేస్తారు.

మాకు ప్రశ్న ఉందా? దయచేసి దీనిని “థియానో ​​వర్సెస్ టెన్సార్ ఫ్లో” యొక్క వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు మేము మీ వద్దకు తిరిగి వస్తాము.