問題タブ [automatic-differentiation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1369 参照

python - NumPy ufuncs と互換性のある配列のようなクラスを作成するには?

NumPy 配列のように動作するクラスを使用して自動微分を実装しようとしています。をサブクラス化していませnumpy.ndarrayが、2 つの配列属性が含まれています。1 つは値用で、もう 1 つはヤコビ行列用です。値とヤコビアンの両方を操作するために、すべての操作がオーバーロードされます。しかし、NumPy ufunc (例: np.log) をカスタム「配列」で動作させるのに問題があります。

問題を説明する次の最小限の例を作成しました。Twoは、NumPy 配列の耐放射線バージョンであり、すべてを 2 回計算し、結果が等しいことを確認します。

インデックス付け、要素ごとの対数、および長さをサポートする必要があります。普通のようにndarray。要素ごとの対数は、 using を呼び出すと正常に機能x.cos()しますが、 using を呼び出すと予期しないことを行いnp.cos(x)ます。

インデックスを作成すると、予想どおり、両方の属性から関連する要素が返されます。

を使用して呼び出された場合、要素ごとの対数は問題なく機能しx.cos()ます。

ただし、np.log(x)期待どおりに動作しません。オブジェクトに長さがあることを認識するため、すべての項目を抽出し、それぞれの対数を取り、Two オブジェクト (dtype=object) の配列を返します。

length メソッドがない場合Twoは、問題なく動作します。

要件 (getitem、log、len) を満たすクラスを作成するにはどうすればよいですか? subclassing について調査ndarrayしましたが、それは価値があるよりも複雑なようです。

また、NumPy のソース コードで がアクセスされている場所が見つからなかった x.__len__ので、それも興味があります。

編集:私は、Python 2.7.11 および NumPy 1.11.0 で miniconda2 を使用しています。

0 投票する
1 に答える
151 参照

haskell - 最小限の Numeric.AD の例はコンパイルされません

Numeric.AD から次の最小限の例をコンパイルしようとしています。

そして、私はこのエラーに遭遇します:

なぜこれが起こっているのかについての手がかりはありますか?前の例を見ると、これは「平坦化」gradのタイプであることがわかります。

grad :: (Traversable f, Num a) => (forall s. Reifies s Tape => f (Reverse s a) -> Reverse s a) -> f a -> f a

しかし、実際にはコードでこのようなことをする必要があります。実際、これはコンパイルできない最も最小限の例です。私がやりたいより複雑なことは、次のようなものです:

これは、コンパイルされる型シグネチャを使用した、もう少し複雑なバージョンです。

ただし、最初のバージョンのgrad2をコードで使用する方法がわかりません。 の処理方法がわからないためですReverse s a。2 番目のバージョン はgrad2'、内部コンストラクターを使用しLiftて を作成するため、適切な型を持っていますが、出力勾配がすべて 0 であるため、Reverse s a内部 (具体的にはパラメーター ) がどのように機能するかを理解していないに違いありません。s他のコンストラクターReverse(ここには示されていません) を使用すると、間違ったグラデーションが生成されます。

または、人々がコードを使用したライブラリ/コードの例はありadますか? 私のユースケースは非常に一般的なものだと思います。

0 投票する
1 に答える
594 参照

tensorflow - TensorFlow で n 個のデータ ポイントと k 個のクラスターの間の距離を計算する

Xin shapenによるデータ ポイントの行列です。in shapeによるクラスタ ポイントの行列です。データポイント と各クラスター間の最小距離は、次のように計算できます。dWkdi

テンソルフローグラフ法で、すべてのデータポイントと各クラスターの間の距離をどのように計算できますか? for ループが頭に浮かびますが、私が理解している限り、そのような機能はテンソルフローに存在しません。