Google JAX
ಗೂಗಲ್ ಜಾಕ್ಸ್ ಎಂಬುದು ಸಂಖ್ಯಾತ್ಮಕ ಕಾರ್ಯಗಳನ್ನು ಪರಿವರ್ತಿಸುವ ಯಂತ್ರ ಕಲಿಕೆಯ ಚೌಕಟ್ಟಾಗಿದೆ. ಇದು ಆಟೋಗ್ರಾಡ್ನ ಮಾರ್ಪಡಿಸಿದ ಆವೃತ್ತಿಯನ್ನು (ಒಂದು ಕಾರ್ಯದ ವಿಭಿನ್ನತೆಯ ಮೂಲಕ ಗ್ರೇಡಿಯಂಟ್ ಕಾರ್ಯವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪಡೆಯುವುದು) ಮತ್ತು ಟೆನ್ಸಾರ್ಫ್ಲೋದ ಎಕ್ಸ್ಎಲ್ಎ (ವೇಗವರ್ಧಿತ ರೇಖೀಯ ಬೀಜಗಣಿತ) ಅನ್ನು ಒಟ್ಟುಗೂಡಿಸುತ್ತದೆ ಎಂದು ವಿವರಿಸಲಾಗಿದೆ. ಇದು ನಂಬಿಯ ರಚನೆ ಮತ್ತು ಕೆಲಸದ ಹರಿವನ್ನು ಸಾಧ್ಯವಾದಷ್ಟು ನಿಕಟವಾಗಿ ಅನುಸರಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಟೆನ್ಸಾರ್ಫ್ಲೋ ಮತ್ತು ಪೈಟೋರ್ಚ್ನಂತಹ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವಿವಿಧ ಚೌಕಟ್ಟುಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಜೆಎಎಕ್ಸ್ನ ಪ್ರಾಥಮಿಕ ಕಾರ್ಯಗಳೆಂದರೆಃ ಗ್ರಾಡ್ಃ ಆಟೋಮ್ಯಾಟಿಕ್ ಡಿಫರೆನ್ಸಿಯೇಷನ್ ಜಿಟ್ಃ ಕಂಪೈಲೇಷನ್ ವಿಮ್ಯಾಪ್ಃ ಆಟೋ-ವೆಕ್ಟರೈಸೇಶನ್ ಪಿಎಂಎಪಿಃ ಎಸ್ಪಿಎಂಡಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಗ್ರಾಡ್ ಕೆಳಗಿನ ಕೋಡ್ ಕಾರ್ಯದ ಆಟೋಮ್ಯಾಟಿಕ್ ಡಿಫರೆನ್ಸಿಯೇಷನ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಜೆಎಕ್ಸ್ ಆಮದು ಗ್ರಾಡ್ ಆಮದು jax.numpy ನಿಂದ ಜೆಎನ್ಪಿ #ಆಗಿ ಆಮದು ಮಾಡಿಕೊಳ್ಳುವುದು ಲಾಜಿಸ್ಟಿಕ್ ಕಾರ್ಯವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ ಡೆಫ್ ಲಾಜಿಸ್ಟಿಕ್ (x): ಹಿಂತಿರುಗಿ jnp.exp (x)/(jnp.exp (x) + 1) #ಲಾಜಿಸ್ಟಿಕ್ ಕಾರ್ಯದ ಗ್ರೇಡಿಯಂಟ್ ಕಾರ್ಯವನ್ನು ಪಡೆಯಿರಿ ಗ್ರಾಡ್ _ ಲಾಜಿಸ್ಟಿಕ್ = ಗ್ರಾಡ್ (ಲಾಜಿಸ್ಟಿಕ್) #ಲಾಜಿಸ್ಟಿಕ್ ಕಾರ್ಯದ ಗ್ರೇಡಿಯಂಟ್ ಅನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ x = 1 ಗ್ರಾಡ್ _ ಲಾಗ್ _ ಔಟ್ = ಗ್ರಾಡ್ _ ಲಾಜಿಸ್ಟಿಕ್ (1) ಮುದ್ರಣ (ಗ್ರಾಡ್ _ ಲಾಗ್ _ ಔಟ್) ಅಂತಿಮ ಸಾಲು ಔಟ್ಪುಟ್ ಆಗಬೇಕು 0.19661194 ಜಿಟ್ ಕೆಳಗಿನ ಕೋಡ್ ಸಮ್ಮಿಳನದ ಮೂಲಕ ಜಿಟ್ ಕಾರ್ಯದ ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಕ್ಯೂಬ್ ಫಂಕ್ಷನ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ (x): ಹಿಂತಿರುಗಿ x * x * x #ಡೇಟಾವನ್ನು ಉತ್ಪಾದಿಸಿ x = jnp.ones ((10000,1000)) #ಕ್ಯೂಬ್ ಫಂಕ್ಷನ್ನ ಜಿಟ್ ಆವೃತ್ತಿಯನ್ನು ರಚಿಸಿ ಜಿಟ್ ಕ್ಯೂಬ್ = ಜಿಟ್ (ಕ್ಯೂಬ್) #ವೇಗ ಹೋಲಿಕೆ ಕ್ಯೂಬ್ (x) ಜಿಟ್ ಕ್ಯೂಬ್ (x) ಗಾಗಿ ಅದೇ ಡೇಟಾಗೆ ಕ್ಯೂಬ್ ಮತ್ತು ಜಿಟ್ ಕ್ಯೂಬ್ ಕಾರ್ಯಗಳನ್ನು ಅನ್ವಯಿಸಿ (ಲೈನ್ ನಂ. 17) ಇದಕ್ಕಿಂತ ಗಮನಾರ್ಹವಾಗಿ ಚಿಕ್ಕದಾಗಿರಬೇಕು (ಸಾಲು ಸಂಖ್ಯೆ 16). ಲೈನ್ ನಂ. ನಲ್ಲಿ ಮೌಲ್ಯಗಳನ್ನು ಹೆಚ್ಚಿಸುವುದು. 7, ವ್ಯತ್ಯಾಸವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. vmap ಕೆಳಗಿನ ಕೋಡ್ ಕಾರ್ಯದ ವೆಕ್ಟರೀಕರಣವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಫಂಕ್ಟೂಲ್ಗಳಿಂದ ಆಮದು ಮಾಡಿಕೊಳ್ಳುವ #ಇಂಪೋರ್ಟ್ಗಳು ಜಾಕ್ಸ್ ಇಂಪೋರ್ಟ್ vmap ಇಮ್ಪೋರ್ಟ್ jax.numpy ನಿಂದ ಭಾಗಶಃ ಆಮದು ಮಾಡಿಕೊಳ್ಳುತ್ತವೆ ಏಕೆಂದರೆ jnp #ಫಂಕ್ಷನ್ ಡೆಫ್ ಗ್ರಾಡ್ಸ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ (ಸ್ವಯಂ, ಇನ್ಪುಟ್ಗಳು): ಇನ್ _ ಗ್ರಾಡ್ _ ಪಾರ್ಶಿಯಲ್ = ಭಾಗಶಃ (self._net_grads, self._net_params) ಗ್ರಾಡ್ _ vmap = vmap (ಇನ್ _ ಗ್ರಾಡ್ _ ಪಾರ್ಶಿಯಲ್) ರಿಚ್ _ ಗ್ರಾಡ್ಸ್ = ಗ್ರಾಡ್ _ vmap (ಇನ್ಪುಟ್ಗಳು) ಫ್ಲಾಟ್ _ ಗ್ರಾಡ್ಸ್ = np.asarray (self._flatten_batch (ರಿಚ್ _ ಗ್ರಾಡ್ಸ್)) ಅಸ್ಸೇರ್ಟ್ flat_grads.ndim = = = 2 ಮತ್ತು flat_grads.shape [0] = inputs.shape [0] ರಿಟರ್ನ್ ಫ್ಲಾಟ್ _ ಗ್ರಾಡ್ಸ್ ಈ ವಿಭಾಗದ ಬಲಭಾಗದಲ್ಲಿರುವ GIF ವೆಕ್ಟರೀಕರಣಗೊಂಡ ಸೇರ್ಪಡೆಯ ಕಲ್ಪನೆಯನ್ನು ವಿವರಿಸುತ್ತದೆ. ಕೆಳಗಿನ ಕೋಡ್ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಗುಣಾಕಾರಕ್ಕಾಗಿ ಕಾರ್ಯದ ಸಮಾನಾಂತರತೆಯನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. #ಜೆಎಎಕ್ಸ್ನಿಂದ ಪಿಮ್ಯಾಪ್ ಮತ್ತು ಯಾದೃಚ್ಛಿಕ ಆಮದು; ಜೆಎಎಕ್ಸ್ ಆಮದು ಪಿಮ್ಯಾಪ್ನಿಂದ ಜೆಎಎಕ್ಸ್ ನ್ಯುಮ್ಪಿಯನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ, ಜೆಎನ್ಪಿ ಆಗಿ ಯಾದೃಚ್ಛಿಕ ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ jax.numpy ಆಯಾಮಗಳ 2 ಯಾದೃಚ್ಛಿಕ ಮ್ಯಾಟ್ರಿಕ್ಸ್ಗಳನ್ನು ಉತ್ಪಾದಿಸಿ 5000 x 6000, ಪ್ರತಿ ಸಾಧನಕ್ಕೆ ಒಂದು ಯಾದೃಚ್ಛಿಕ ಕೀಲಿಗಳು = random.split (random.PRNGKey (0), 2) ಮ್ಯಾಟ್ರಿಕ್ಸ್ಗಳು = ಪಿಮ್ಯಾಪ್ (ಲ್ಯಾಂಬ್ಡಾ ಕೀಲಿಃ random.normal (ಕೀಲಿ, (5000,6000))) (ಯಾದೃಚ್ಛಿಕ ಕೀಲಿಗಳು) #ದತ್ತಾಂಶ ವರ್ಗಾವಣೆಯಿಲ್ಲದೆ, ಸಮಾನಾಂತರವಾಗಿ, ಪ್ರತಿ ಸಿಪಿಯು/ಜಿಪಿಯು ಔಟ್ಪುಟ್ಗಳ ಮೇಲೆ ಸ್ಥಳೀಯ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಗುಣಾಕಾರವನ್ನು ನಿರ್ವಹಿಸಿ = ಪಿಮ್ಯಾಪ್ (ಲ್ಯಾಂಬ್ಡಾ x: jnp.dot (x, x. T)) (ಮ್ಯಾಟ್ರಿಕ್ಸ್ಗಳು) #ದತ್ತಾಂಶ ವರ್ಗಾವಣೆಯಿಲ್ಲದೆ, ಸಮಾನಾಂತರವಾಗಿ, ಸರಾಸರಿ ಪಡೆಯಿರಿ ವಿಷುವತ್ ಸಂಕ್ರಾಂತಿಯು ಪೈಟ್ರೀಸ್ ಆಗಿ ನಿಯತಾಂಕಿತ ಕಾರ್ಯಗಳನ್ನು (ನರ ಜಾಲಗಳನ್ನು ಒಳಗೊಂಡಂತೆ) ಪ್ರತಿನಿಧಿಸುವ ಕಲ್ಪನೆಯ ಸುತ್ತ ಸುತ್ತುತ್ತದೆ. ಇದನ್ನು ಪ್ಯಾಟ್ರಿಕ್ ಕಿಡ್ಜರ್ ರಚಿಸಿದ್ದಾರೆ. ಡಿಫ್ರಾಕ್ಸ್, ಸಾಮಾನ್ಯ ಭೇದಾತ್ಮಕ ಸಮೀಕರಣಗಳು ಮತ್ತು ಯಾದೃಚ್ಛಿಕ ಭೇದಾತ್ಮಕ ಸಮೀಕರಣಗಳಂತಹ ಭೇದಾತ್ಮಕ ಸಮೀಕರಣಗಳ ಸಂಖ್ಯಾತ್ಮಕ ಪರಿಹಾರಕ್ಕಾಗಿ ಒಂದು ಗ್ರಂಥಾಲಯವಾಗಿದೆ. ಆಪ್ಟಾಕ್ಸ್, ಡೀಪ್ ಮೈಂಡ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಗ್ರೇಡಿಯಂಟ್ ಪ್ರೊಸೆಸಿಂಗ್ ಮತ್ತು ಆಪ್ಟಿಮೈಸೇಶನ್ಗಾಗಿ ಒಂದು ಗ್ರಂಥಾಲಯವಾಗಿದೆ. ಲೀನಿಯಾಕ್ಸ್, ರೇಖೀಯ ವ್ಯವಸ್ಥೆಗಳು ಮತ್ತು ರೇಖೀಯ ಕನಿಷ್ಠ ಚೌಕಗಳನ್ನು ಸಂಖ್ಯಾತ್ಮಕವಾಗಿ ಪರಿಹರಿಸುವ ಗ್ರಂಥಾಲಯವಾಗಿದೆ. ಆರ್ಎಲ್ಎಕ್ಸ್, ಡೀಪ್ ಮೈಂಡ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಬಲವರ್ಧನೆಯ ಕಲಿಕಾ ಏಜೆಂಟ್ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಗ್ರಂಥಾಲಯವಾಗಿದೆ. ಗ್ರಾಫ್, ಗ್ರಾಫ್ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳಿಗಾಗಿ ಗ್ರಂಥಾಲಯ, ಇದನ್ನು ಡೀಪ್ ಮೈಂಡ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದೆ. ಜಾಕ್ಸ್ಟೈಪಿಂಗ್, ಸರಣಿಗಳು ಅಥವಾ ಟೆನ್ಸರ್ಗಳ ಆಕಾರ ಮತ್ತು ದತ್ತಾಂಶ ಪ್ರಕಾರಕ್ಕೆ ("ಡಿಟೈಪ್") ಪ್ರಕಾರದ ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸುವ ಗ್ರಂಥಾಲಯವಾಗಿದೆ. ಕೆಲವು ಆರ್ ಲೈಬ್ರರಿಗಳು ಜೆಎಎಕ್ಸ್ ಅನ್ನು ಬ್ಯಾಕೆಂಡ್ ಆಗಿಯೂ ಬಳಸುತ್ತವೆ, ಅವುಗಳೆಂದರೆಃ ಫಾಸ್ಟ್ರೆರ್ರಾಂಡೋಮೈಸ್, ಜೆಎಎಕ್ಸ್ನಲ್ಲಿ ರೇಖೀಯ-ಬೀಜಗಣಿತ ಆಪ್ಟಿಮೈಸ್ಡ್ ಕಂಪೈಲರ್ ಅನ್ನು ಬಳಸುವ ಲೈಬ್ರರಿಯು ರೀರ್ಯಾಂಡೋಮೈಸೇಶನ್ ಎಂದು ಕರೆಯಲ್ಪಡುವ ಪ್ರಯೋಗಗಳ ಕಾರ್ಯವಿಧಾನದ ವಿನ್ಯಾಸದಲ್ಲಿ ಸಮತೋಲಿತ ಯಾದೃಚ್ಛಿಕತೆಗಳ ಆಯ್ಕೆಯನ್ನು ವೇಗಗೊಳಿಸುತ್ತದೆ. NumPy TensorF್ಲೋ ಪೈಟರ್ಚ್ CUDA ಆಟೋಮ್ಯಾಟಿಕ್ ಡಿಫರೆನ್ಸಿಯೇಷನ್ ಜಸ್ಟ್-ಇನ್-ಟೈಮ್ ಕಂಪೈಲೇಷನ್ ವೆಕ್ಟರೈಸೇಶನ್ ಆಟೋಮ್ಯಾಟಿಕ್ ಪ್ಯಾರಲೈಸೇಶನ್ ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಡಾಕ್ಯುಮೆಂಟೇಶನ್ಃ ಕೊಲಾಬ್ (ಜುಪಿಟರ್/ಐಪೈಥಾನ್) ಕ್ವಿಕ್ಸ್ಟಾರ್ಟ್ ಗೈಡ್ಃ ಟೆನ್ಸರ್ಫ್ಲೋಸ್ XLAː (ಆಕ್ಸಿಲರೇಟೆಡ್ ಲೀನಿಯರ್ ಆಲ್ಜಿಬ್ರಾ) ಮೂಲ ಕಾಗದಃ ರೆಫರೆನ್ಸ್ ಮೆಷಿನ್ ಲರ್ನಿಂಗ್ JAX