딥 러닝 코드 및 Tensorsensor 구현 슬라이드 (PDF)에서 예외를 명확히하고 시각화하는 기사를 참조하십시오.
( 2021 년 9 월 현재, M1 Macs는 Anaconda를 통해 설치된 많은 텐서 라이브러리에서 불법 지침을 경험하므로 현재 인텔 기반 Mac에서만 작동해야합니다. Pytorch는 작동하는 것으로 보입니다. )
다음 기본 예외 메시지 대신 :
ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 764 is different from 100)
Tensorsensor는 문제가 발생한 작업자에 대한 자세한 정보와 함께 메시지를 보강하고 오페라의 모양을 포함합니다.
Cause: @ on tensor operand W w/shape (764, 100) and operand X.T w/shape (764, 200)
모든 하위 표현형 형태를 포함하는 표현식에 대한 전체 계산 그래프를 얻을 수도 있습니다.
W = torch . rand ( size = ( 2000 , 2000 ), dtype = torch . float64 )
b = torch . rand ( size = ( 2000 , 1 ), dtype = torch . float64 )
h = torch . zeros ( size = ( 1_000_000 ,), dtype = int )
x = torch . rand ( size = ( 2000 , 1 ))
z = torch . rand ( size = ( 2000 , 1 ), dtype = torch . complex64 )
tsensor . astviz ( "b = W@b + (h+3).dot(h) + z" , sys . _getframe ())다음과 같은 추상 구문 트리를 모양으로 생성합니다.
pip install tensor-sensor # This will only install the library for you
pip install tensor-sensor[torch] # install pytorch related dependency
pip install tensor-sensor[tensorflow] # install tensorflow related dependency
pip install tensor-sensor[jax] # install jax, jaxlib
pip install tensor-sensor[all] # install tensorflow, pytorch, jax
모듈 tsensor 제공합니다. 다음 버전으로 개발하고 테스트했습니다
$ pip list | grep -i flow
tensorflow 2.5.0
tensorflow-estimator 2.5.0
$ pip list | grep -i numpy
numpy 1.19.5
numpydoc 1.1.0
$ pip list | grep -i torch
torch 1.10.0
torchvision 0.10.0
$ pip list | grep -i jax
jax 0.2.20
jaxlib 0.1.71
tsensor.astviz(...) 가있는 초록 구문 트리 (AST)를 표시하려면 Python 라이브러리뿐만 아니라 GraphViz에서 dot 실행 파일이 필요합니다.
Mac 에서는 Tensor-Sensor 설치 전후 에이 작업을 수행하십시오.
brew install graphviz
창문 에서는 분명히 필요합니다
conda install python-graphviz # Do this first; get's dot executable and py lib
pip install tensor-sensor # Or one of the other installs
나는 할당 또는 표현 만 구문 분석 라인에 의존하므로 명확한 및 설명 루틴은 다음과 같이 표현 된 방법을 처리하지 않습니다.
def bar(): b + x * 3
대신 사용하십시오
def bar():
b + x * 3
부작용을 조심하십시오! 나는 과제를하지 않지만, 당신이 부작용으로 호출하는 기능은 진술을 재평가하는 동안 수행됩니다.
연속을 처리 할 수 없습니다.
Python threading 패키지를 사용하면 Clearify ()를 호출하는 여러 스레드를 사용하지 마십시오. multiprocessing 패키지는 괜찮아야합니다.
또한 참고 : Tsensor가 처리 할 수있는 과제 / 표현 만 처리하기 위해 나만의 구문 분석기를 만들었습니다.
$ python setup.py sdist upload 또는 로컬로 다운로드하고 설치하십시오
$ cd ~ /github/tensor-sensor
$ pip install .