계산 속도를 높이기 위해 신경망에 대한 커스텀 CUDA 커널을 작성하고 싶지만 수행 할 수있는 패키지가 있다면 손으로 텐서 표현식을 구별하는 데 시간을 투자하고 싶지 않습니다. 자동으로계산 행렬/상징 행렬 미분 표현식 얻기
심볼릭 매트릭스 차별화를위한 표현식을 보여줄 수있는 파이썬 패키지가 있습니까?
내가 sympy
이 같은 행렬이 아닌 표현을 위해 그것을 할 수있어 : 함수가 평가 한 후
def func(x):
return 1/x
arg_symbols = sp.symbols(inspect.getfullargspec(func).args)
sym_func = func(*arg_symbols)
s = ''
for arg in arg_symbols:
s += '{}\n'.format(arg, sp.Lambda(arg_symbols, sym_func.diff(arg)))
# this is what I need:
print(s)
>>> Lambda(x, -1/x**2)
내가 행렬의 파생 상품을 계산할 수 autograd
패키지
을 연산 식을 알고, autograd가있다 수행 된 모든 작업 목록 및 해당 노드가 종속 된 노드. 함수 계산에 대한 계산 그래프는 입니다. 파생 상품을 계산하려면 그래프의 각 노드 에 차별화 규칙을 적용하기 만하면됩니다.
그러나이 미분 계산 그래프를 얻을 수있는 방법이 있습니까?
예, 그렇지만 이러한 패키지 중 일부에서 파생 그래프를 추출 할 수있는 방법이 있습니까? (나는 그것을 CUDA 등에서 하드 코딩 할 필요가있다.) – Bob
최소한의 수정으로 Cuda에서 사용할 수있는 C 코드를 내보낼 수있다. –
어떻게해야할까요? – Bob