"Mxnet"의 두 판 사이의 차이
ph
잔글 |
잔글 |
||
16번째 줄: | 16번째 줄: | ||
ExecutableNotFound: failed to execute ['dot', '-Tsvg'], make sure the Graphviz executables are on your systems' PATH | ExecutableNotFound: failed to execute ['dot', '-Tsvg'], make sure the Graphviz executables are on your systems' PATH | ||
맥이라 걍 포기. {{c|brew}}하면 된다는데 걍 안하고 원격 리눅스에서나. 시스템에도 있어야 하고, pip로도 있어야 한다.(우분투에서 {{c|apt ~}} 랑 {{c|pip install ~}} 다 해줘야 한다는 얘기) | 맥이라 걍 포기. {{c|brew}}하면 된다는데 걍 안하고 원격 리눅스에서나. 시스템에도 있어야 하고, pip로도 있어야 한다.(우분투에서 {{c|apt ~}} 랑 {{c|pip install ~}} 다 해줘야 한다는 얘기) | ||
+ | |||
+ | bind → forward해서 output을 얻지 않고, 바로 eval할 수도 있다. | ||
+ | |||
+ | <u>{{c|tojson()}}</u> | ||
+ | print(c.tojson()) | ||
+ | c.save('symbol-c.json') | ||
+ | c2 = mx.sym.load('symbol-c.json') | ||
+ | |||
+ | type cast | ||
+ | a = mx.sym.Variable('data') | ||
+ | b = mx.sym.cast(data=a, dtype='float16’) |
2017년 7월 3일 (월) 15:53 판
뭘 이렇게들 만들어 대는지. tf가 맘에 안들기는 하지만.
Basics
걍 numpy를 쓰지 않는 이유는 cpu, gpu등 자유로이 알아서(?) 처리해주고, 병렬까지도 알아서(?) 한다고 함. [1] tf도 해주지 않냐?
broadcast[2]: rep같은건가봄.
pickle.dump말고 mx.nd.load, mx.nd.save를 쓸 수 있다. [3]
symbolic api를 설명[4]하면서 중간에 장점이 하나 나오는데 이런게 있었네 싶었음. ㅎㅎ : 미리 그래프를 짜 놓으면 나중에 어떤 결과값이 필요할지 미리 알 수 있어서 계산중간값들을 모두 저장해둘 필요가 없다. 메모리가 절약됨.
관련해서, symbolic programming을 declarative programming이라고도 하고 이 반대를 imperative programming이라고 하는 모양. imperative programming은 단어만 보면 이게 도대체 뭔소린가 싶었다. Declarative programming의 예: regular expression, SQL.
매뉴얼 따라하다가 graphviz때문에 에러남
ExecutableNotFound: failed to execute ['dot', '-Tsvg'], make sure the Graphviz executables are on your systems' PATH
맥이라 걍 포기. brew하면 된다는데 걍 안하고 원격 리눅스에서나. 시스템에도 있어야 하고, pip로도 있어야 한다.(우분투에서 apt ~ 랑 pip install ~ 다 해줘야 한다는 얘기)
bind → forward해서 output을 얻지 않고, 바로 eval할 수도 있다.
tojson()
print(c.tojson()) c.save('symbol-c.json') c2 = mx.sym.load('symbol-c.json')
type cast
a = mx.sym.Variable('data') b = mx.sym.cast(data=a, dtype='float16’)