2016-09-30 3 views
0

Tensorflow를 처음 사용했습니다.Tensorflow 변수 및 연산과 Python에 해당하는 코드

  • 는 다른 int32, float32 또는 교체 tf.constant()를 사용하는 등, tensorflow의 기능을 사용할 필요가 있습니까?
  • 또한 계산 중에 보통의 파이썬 곱셈 대신 tf.mul()을 사용합니다 *?
  • 또한 대신 tf.Print() 인 인쇄 기능을 사용 하시겠습니까?

답변

1

바와 같이 텐서는 동작의 출력 중 하나에 대한 기호 핸들 here,

주목. TensorFlow 세션에서 이러한 값을 계산할 수있는 수단을 제공하지는 않습니다.

그래서 텐서 변수는 파이썬 변수와 다릅니다. 오히려 그들은 computational graph에서 작업 간의 관계를 지정합니다. 그래프를 설명하기 위해 사용하는 파이썬 변수는 프로그래머의 편의를위한 것이지만, 파이썬 변수와 텐서 변수를 병렬 네임 스페이스로 생각하는 것이 더 쉽습니다. 이 예는 도움이 될 수 있습니다 :이에서

with tf.Session() as sess: 
    a = tf.constant([1, 2, 3]) 
    b = tf.Variable([]) 
    b = 2 * a 
    sess.run(tf.initialize_all_variables()) 
    print(b) # Tensor("mul:0", shape=(3,), dtype=int32) 
    print(b.eval()) # [2, 4, 6] 
    b = tf.Print(b, [b]) # [2, 4, 6] (at the command line) 

당신이 볼 수 있습니다 작업에 대한

  • print(b) 정보를 반환 'B'는 변수 모양과 데이터 유형이 아닌 값뿐만 아니라 참조하는 .
  • b.eval() (또는 sess.run(b))는 print()
  • tf.Print()는 그래프 실행 중에 b 값을 볼 수있는 파이썬에 의해 인쇄 될 수있는 배열로 NumPy와 b의 값을 반환한다.

tf.Print()의 구문은 초보자에게 약간 이상하게 보일 수 있습니다. 문서 here에 설명 된대로 tf.Print()은 명령 줄에 인쇄하는 부작용 만있는 신원 작업입니다. 첫 번째 매개 변수가 전달됩니다. 두 번째 매개 변수는 인쇄되는 텐서 목록이며 첫 번째 매개 변수와 다를 수 있습니다. 또한 tf.Print()이 무언가를 수행하려면 sess.run()에 대한 후속 호출에 사용 된 변수는 텐서 출력에 tf.Print()에 종속되어야합니다. 그렇지 않으면 그래프의이 부분이 실행되지 않습니다. here 바와 같이

최종적 수학 OPS에 대하여 같은 tf.mul() 대 정상 파이썬 OPS 많은 *는 등가 tensorflow 본부 오버로드된다.

+0

답장을 보내 주셔서 감사합니다. Tensorflow 방식으로 계산을하는 것이 더 좋습니다 : 그래프를 작성하고 세션에서 계산하십시오. 또한, 어떤 경우에는'tf.mul'을 사용하는 것이 일반적인 파이썬 곱셈보다 좋을 수도있는 것과 같이 텐서의 계산에 대한 최적화가있을 것이라고 생각합니다. –

+0

또 다른 고려해야 할 점은 그래프를 시각화하기 위해 [** TensorBoard **] (https://www.tensorflow.org/versions/r0.11/how_tos/summaries_and_tensorboard/index.html)를 사용해야하는 경우입니다. , numpy의 연산이나 일반적인 파이썬의 연산과 같이 non-tensorflow 연산을 지원합니까? 나는 작은 네트워크에서 일하고 있는데 나중에 시험해 보겠습니다. Tensorflow로 코딩 할 때 좋은 습관이 있다고 말해 줄 수 있습니까? 'tf.Session as sess : '대신'operation.eval()'을 사용하도록 디폴트'tf.Session'을 설정하는 것과 같습니다. 그래프를 작성하고 그래프를 실행하는 데는 여러 가지 방법이 있으므로 선호하는 부분이 있습니까? –

+1

나는 각자가 자신의 코딩 스타일을 개발할 필요가 있다고 생각한다. 나는 당신이 github에 다양한 tensorflow 루틴을보고 당신이 한 사람의 스타일을 좋아한다면 그것을 따르려고합니다. 어쨌든 특정 문제 나 질문이 있으면이 포럼에 게시하십시오. TF 공동체는 매우 반응이 좋아 보인다. – RobR

1

계산 그래프에 텐서 흐름이 내장되어 있기 때문에. 파이썬으로 그래프를 만들 때, 건물은 단지 계산의 설명입니다 (실제 계산을하지는 않습니다). 무엇이든 계산하려면 그래프가 세션에서 시작되어야합니다. 따라서 tensorflow 연산으로 계산하는 것이 가장 좋습니다.

https://www.tensorflow.org/versions/r0.11/get_started/basic_usage.html