1

次のように、 autograd を使用してテンソルのノルムの勾配を計算したいと思います。

from autograd import grad
import autograd.numpy as np

N = 100; X = np.random.normal(0,1,size=N);
tensor = np.outer(np.outer(X,X),X).reshape(N,N,N);

def cost(X):
    X_t = np.outer(np.outer(X,X),X).reshape(N,N,N);
    return np.linalg.norm(tensor - X_t);
gradient_cost = grad(cost);

X_0 = np.random.normal(0,1,size=N);
gradient_cost(X_0)

私は別の実装も試しました(たとえば、独自のノルムを使用するか、テンソルの異なる形状を使用するなど)が、常にエラーが発生します

ValueError: 形状 (100,100) と (10000,100) が整列していません: 100 (dim 1) != 10000 (dim 0)

4

0 に答える 0