Google JAX
ગૂગલ જેએક્સ એ આંકડાકીય કાર્યોમાં પરિવર્તન લાવવા માટેનું મશીન લર્નિંગ માળખું છે. તેને ઓટોગ્રેડ (કાર્યના તફાવત દ્વારા ગ્રેડિયન્ટ કાર્યની આપમેળે પ્રાપ્તિ) અને ટેન્સરફ્લોના એક્સ. એલ. એ. (એક્સિલરેટેડ લિનિયર આલ્જેબ્રા) ના સુધારેલા સંસ્કરણને એકસાથે લાવવા તરીકે વર્ણવવામાં આવે છે. તે NumPy ની રચના અને કાર્યપ્રવાહને શક્ય તેટલી નજીકથી અનુસરવા માટે રચાયેલ છે અને ટેન્સરફ્લો અને પાયટોર્ચ જેવા વિવિધ વર્તમાન માળખા સાથે કામ કરે છે. જેએએક્સ (JAX) ના પ્રાથમિક કાર્યો છેઃ ગ્રેદઃ ઓટોમેટિક ડિફરન્સીએશન જિટઃ કમ્પાઇલેશન વીમેપઃ ઓટો-વેક્ટરાઇઝેશન પી. એમ. એ. પી.: એસ. પી. એમ. ડી. પ્રોગ્રામિંગ ગ્રેદ નીચેનો કોડ ફંક્શનના ઓટોમેટિક ડિફરન્સીએશનને દર્શાવે છે. જેએક્સ ઇમ્પોર્ટ ગ્રેડ ઇમ્પોર્ટ jax.numpy માંથી #ઇમ્પોર્ટ્સ તરીકે જેએનપી #લોજિસ્ટિક ફંક્શન ડિફ લોજિસ્ટિક (x) ને વ્યાખ્યાયિત કરે છેઃ રીટર્ન jnp.exp (x)/(jnp.exp (x) + 1) #લોજિસ્ટિક ફંક્શનના ગ્રેડિયન્ટ ફંક્શનને પ્રાપ્ત કરો ગ્રેડીસ્ટીક = ગ્રેડી (લોજિસ્ટિક) #લોજિસ્ટિક ફંક્શનના ગ્રેડિયન્ટનું મૂલ્યાંકન x = 1 ગ્રેડીસ્ટીક = ગ્રેડીસ્ટીક પર કરો. #જેએક્સ ઇમ્પોર્ટમાંથી આયાત થાય છે જેઆઇડી2> જેઆઇડી2 તરીકે જેઆઇડી2 #ક્યુબ ફંક્શનને વ્યાખ્યાયિત કરે છે ડેફ ક્યુબ (x): રીટર્ન x * x * x #ડેટા જનરેટ કરે છે x = jnp.ones ((10000,1000)) #ક્યુબ ફંક્શનનું જેઆઇટી વર્ઝન બનાવો જેઆઇટી _ ક્યુબ = જેઆઇટી (ક્યુબ) #ક્યુબ અને જેઆઇટી _ ક્યુબ ફંક્શન્સને સમાન ડેટામાં સ્પીડ કમ્પેરીઝન ક્યુબ (x) જેઆઇટી _ ક્યુબ (x) માટે લાગુ કરો. 17) તેના કરતા નોંધપાત્ર રીતે ટૂંકો હોવો જોઈએ (પંક્તિ નંબર 16). લાઇન નં. પર મૂલ્યોમાં વધારો. 7, તફાવતમાં વધારો કરશે. vmap નીચેનો કોડ કાર્યનું વેક્ટરાઇઝેશન દર્શાવે છે. ફંકટૂલમાંથી #ઇમ્પોર્ટ જેએક્સ ઇમ્પોર્ટમાંથી આંશિક આયાત કરે છે vmap ઇમ્પોર્ટ jax.numpy કારણ કે jnp #ફંક્શન ડિફાઇન કરે છે (સેલ્ફ, ઇનપુટ્સ): in _ grade _ partial = partial (self._net_grads, self._net_params) grade _ vmap = vmap (in _ grade _ partial) rich _ grads = grade _ vmap (ઇનપુટ્સ) ફ્લેટ _ ગ્રેડ્સ = np.asarray (self._flatten_batch (rich _ grads)) એસર્ટ flat_grads.ndim = = = 2 અને flat_grads.shape [0] = inputs.shape [0] રીટર્ન ફ્લેટ _ ગ્રેડ્સ આ વિભાગની જમણી બાજુએ GIF વેક્ટરાઇઝ્ડ એડિશનની કલ્પનાને સમજાવે છે. પી. એમ. એ. પી. નીચેનો કોડ મેટ્રિક્સ ગુણાકાર માટે કાર્યની સમાંતરતા દર્શાવે છે. #ઇમ્પોર્ટ પી. એમ. એ. પી. અને જે. એ. એક્સ. માંથી રેન્ડમ; જે. એ. એક્સ. ઇમ્પોર્ટ પી. એમ. એ. પી. માંથી જે. એ. એક્સ. ન્યુમપાઈ ઇમ્પોર્ટ કરો, જે. એન. પી. તરીકે રેન્ડમ ઇમ્પોર્ટ કરો <આઇ. ડી. 5> પરિમાણોના 2 રેન્ડમ મેટ્રિક્સ જનરેટ કરો 5000 x 6000, એક ઉપકરણ દીઠ રેન્ડમ કી = <આઇ. ડી. 1> (<આઇ. ડી. 3> (0), 2) મેટ્રિક્સ = પી. એમ. એ. પી. (લેમ્બડા કીઃ <આઇ. ડી. 4> (કી, (5000,6000))) (રેન્ડમ કી) #ડેટા ટ્રાન્સફર વિના, સમાંતર રીતે, દરેક સીપીયુ/જી. પી. યુ. આઉટપુટ પર સ્થાનિક મેટ્રિક્સ ગુણાકાર કરો = પી. એમ. એ. પી. (લેમ્બડા x: <આઇ. ડી. 6> (x, x. T)) (મેટ્રિક્સ) #ડેટા ટ્રાન્સફર વિના, સમાંતર રીતે, સરેરાશ મેળવો ઇક્વિનોક્સ, એક પુસ્તકાલય છે જે પાયટ્રીસ તરીકે પરિમાણિત કાર્યો (ન્યુરલ નેટવર્ક્સ સહિત) નું પ્રતિનિધિત્વ કરવાના વિચારની આસપાસ ફરે છે. તે પેટ્રિક કિડર દ્વારા બનાવવામાં આવ્યું હતું. ડિફ્રેક્સ, સામાન્ય વિભેદક સમીકરણો અને સ્ટોકેસ્ટિક વિભેદક સમીકરણો જેવા વિભેદક સમીકરણોના આંકડાકીય ઉકેલ માટેનું પુસ્તકાલય છે. ઓપ્ટેક્સ, ડીપમાઇન્ડ દ્વારા વિકસાવવામાં આવેલી ગ્રેડિયન્ટ પ્રોસેસિંગ અને ઓપ્ટિમાઇઝેશન માટેની લાઇબ્રેરી છે. લીનીએક્સ, આંકડાકીય રીતે રેખીય પ્રણાલીઓ અને રેખીય લઘુત્તમ ચોરસને ઉકેલવા માટેની લાઇબ્રેરી છે. આરએલએક્સ, ડીપમાઇન્ડ દ્વારા વિકસિત રિઇન્ફોર્સમેન્ટ લર્નિંગ એજન્ટ્સ વિકસાવવા માટેની લાઇબ્રેરી છે. ગ્રાફ, ગ્રાફ ન્યુરલ નેટવર્ક્સ માટેની લાઇબ્રેરી, જે ડીપમાઇન્ડ દ્વારા વિકસાવવામાં આવી છે. જેક્સટાઇપિંગ, એરે અથવા ટેન્સરના આકાર અને ડેટા પ્રકાર ("ડીટાઇપ") માટે પ્રકાર ટિપ્પણીઓ ઉમેરવા માટેની લાઇબ્રેરી છે. કેટલીક આર લાઈબ્રેરીઓ જેએએક્સનો બેકએન્ડ તરીકે પણ ઉપયોગ કરે છે, જેમાં નીચેનાનો સમાવેશ થાય છેઃ ફાસ્ટરરેન્ડોમાઇઝ, એક લાઈબ્રેરી જે જેએએક્સમાં રેખીય-બીજગણિત ઑપ્ટિમાઇઝ કમ્પાઇલરનો ઉપયોગ કરે છે, જે રેરેન્ડોમાઇઝેશન તરીકે ઓળખાતી પ્રયોગોની પ્રક્રિયાની ડિઝાઇનમાં સંતુલિત રેન્ડોમાઇઝેશનની પસંદગીને ઝડપી બનાવે છે. આ પણ જુઓ ન્યુમપી ટેન્સરફ્લો પાયટોર્ચ CUDA ઓટોમેટિક તફાવત જસ્ટ-ઇન-ટાઇમ સંકલન વેક્ટરાઇઝેશન ઓટોમેટિક પેરેલલાઇઝેશન બાહ્ય કડીઓ દસ્તાવેજીકરણઃ કોલાબ (જ્યુપિટર/આઇપીથોન) ક્વિકસ્ટાર્ટ માર્ગદર્શિકાઃ ટેન્સરફ્લોની XLAː (એક્સિલરેટેડ લીનિયર આલ્જેબ્રા) મૂળ પેપરઃ સંદર્ભો મશીન લર્નિંગ JAX