GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

HIPS

autograd – numpyコードの導関数を効率的に計算

投稿日:

numpyコードの導関数を効率的に計算します。

オートグラード

Autogradは自動的にネイティブのPythonとNumpyコードを区別できます。 ループ、if、再帰、クロージャを含むPythonの機能の大きなサブセットを扱うことができ、派生物の派生物を派生させることさえできます。 これは逆方向モード微分(バックプロパゲーションとも呼ばれます)をサポートしています。これは、配列値の引数と順方向微分でスカラー値関数のグラディエントを効率的に取ることができることを意味し、2つは任意に構成できます。 Autogradの主な用途は、グラジエントベースの最適化です。 詳細については、 チュートリアルexamplesディレクトリを参照してください

使用例:

>>> import autograd.numpy as np  # Thinly-wrapped numpy
>>> from autograd import grad    # The only autograd function you may ever need
>>>
>>> def tanh(x):                 # Define a function
...     y = np.exp(-2.0 * x)
...     return (1.0 - y) / (1.0 + y)
...
>>> grad_tanh = grad(tanh)       # Obtain its gradient function
>>> grad_tanh(1.0)               # Evaluate the gradient at x = 1.0
0.41997434161402603
>>> (tanh(1.0001) - tanh(0.9999)) / 0.0002  # Compare to finite differences
0.41997434264973155

私たちが好きなだけ何度も差別化を続け、さまざまな入力値にわたってnumpyのスカラー値関数のベクトル化を使用することができます。

>>> from autograd import elementwise_grad as egrad  # for functions that vectorize over inputs
>>> import matplotlib.pyplot as plt
>>> x = np.linspace(-7, 7, 200)
>>> plt.plot(x, tanh(x),
...          x, egrad(tanh)(x),                                     # first  derivative
...          x, egrad(egrad(tanh))(x),                              # second derivative
...          x, egrad(egrad(egrad(tanh)))(x),                       # third  derivative
...          x, egrad(egrad(egrad(egrad(tanh))))(x),                # fourth derivative
...          x, egrad(egrad(egrad(egrad(egrad(tanh)))))(x),         # fifth  derivative
...          x, egrad(egrad(egrad(egrad(egrad(egrad(tanh))))))(x))  # sixth  derivative
>>> plt.show()

コードについては、 tanhのサンプルファイルを参照してください。

ドキュメンテーション

ここでチュートリアルを見つけることができます

エンドツーエンドの例

インストールする方法

pip install autograd実行pip install autograd

著者

AutogradはDougal MaclaurinDavid DuvenaudMatt JohnsonJamie Townsendなど多くの寄稿者によって書かれており 、積極的に開発しています。 バグや機能要求をお寄せください。 また、一般的なオートグラドの経験についてお聞きしたいと思います。 メールをお送りください!

私たちはJasper SnoekとHIPSグループの他のメンバー(Ryan P. Adams教授が率いる)に貢献して助けと助言をしてくれたことに感謝したい。 自動差別化に関する基本的な作業と私たちの実装に関するガイダンスのためのBarak Pearlmutter; (Lyric Labs)、サムスン先端技術研究所(Samsung Institute of Technology)に寛大なサポートを提供しています。







-HIPS
-

執筆者: