-
[TensorFlow] Tensorflow Dataset - 'Tensor' object has no attribute 'numpy' 에러 해결잡다한 지식 2019. 9. 28. 20:21
tf.Tensor 객체에 .numpy() 메소드를 호출 했을 때, 'Tensor' object has no attribute 'numpy' 메세지를 볼 때가 있다.
코드는 아래와 같다.
12345678910import tensorflow as tfimport tensorflow_datasets as tfdsdatasets, ds_info = tfds.load(name='mnist', with_info=True, as_supervised=True)mnist_train, mnist_test = datasets['train'], datasets['test']for mnist_example in mnist_train.take(1):image = mnist_example[0]image.numpy()breakcs 9번째 라인에서 image.numpy()를 호출했는데, 'Tensor' object has no attribute 'numpy' 에러가 뜬다. 이럴 때는 어떻게 해야 할까?
텐서플로를 import 하면서 바로 아래에 이렇게 즉시 실행 코드를 넣으면 된다.
12import tensorflow as tftf.enable_eager_execution()cs 정확한 원인은 모르겠으나, 텐서플로에 아래 링크와 같이 즉시 실행 모드가 있는 것으로 보인다.
https://www.tensorflow.org/tutorials/eager/eager_basics
즉시 실행 기초 | TensorFlow Core
Note: 이 문서는 텐서플로 커뮤니티에서 번역했습니다. 커뮤니티 번역 활동의 특성상 정확한 번역과 최신 내용을 반영하기 위해 노력함에도 불구하고 공식 영문 문서의 내용과 일치하지 않을 수 있습니다. 이 번역에 개선할 부분이 있다면 tensorflow/docs 깃헙 저장소로 풀 리퀘스트를 보내주시기 바랍니다. 문서 번역이나 리뷰에 참여하려면 docs-ko@tensorflow.org로 메일을 보내주시기 바랍니다. 이 노트북은 텐서플로를 사용하기 위한 입문
www.tensorflow.org
문서 초반에 이런 문구가 있다.
"시작하기 위해서 텐서플로 모듈을 임포트하고 즉시 실행(eager execution)을 활성화합니다. 즉시 실행 활성화로 텐서플로를 조금 더 대화형 프론트엔드(frontend)에 가깝게 만들어 줍니다."
즉, tf.enable_eager_execution() 를 사용하면 tensor를 즉시 실행해주고, 아니라면 session을 사용해서 활성화를 해야하는 것으로 보인다.
'잡다한 지식' 카테고리의 다른 글
Deep learning 수식에서 자주 쓰이는 Latex 정리 (0) 2019.10.06 티스토리 블로그에서 링크 아래에 썸네일 붙이기 (0) 2019.09.14 Tistory 블로그에 수식 입력 (0) 2019.09.14