inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

TensorFlow 2.0으로 배우는 딥러닝 입문

TensorFlow 2.0을 이용한 선형 회귀(Linear Regression) 알고리즘 구현

@tf.function은 무슨 역할을 하는 코드인가요?

5708

호기심 많은 거북이

작성한 질문수 4

0

해당 줄이 없어도 def 자체로도 함수가 선언되는 데에는 충분하지 않나요? 각주로서의 의미인가요?

tensorflow 머신러닝 배워볼래요? 딥러닝

답변 1

5

AISchool

안녕하세요~. 반갑습니다. 
@tf.fuctnion     annotation을 이해하기 위해서는 tensorflow 개발과정의 역사(?)를 조금 이해하셔야하는데요.
tf 1.x 버전대에서는 그래프의 생성과 실행을 분리하고 값을 실행할때는 Session이라는 것을 열어서 값을 실행하는 형태였는데요. 이렇게 진행하다보니 값을 계산하고 싶을때마다 Session을 이용해서 실행을 해주어야만해서 프로그래밍 과정상에 불편함이 많았습니다.
따라서 tf 2.x 버전대에서는 Session을 삭제하고 바로 값을 실행할 수 있는 Eager Execution이라는 것이 적용되었는데요. 따라서 값을 계산할때 별도의 Session을 열지 않고도 편리하게 진행할 수 있게 되었습니다.
그럼 왜 굳이 tf 1.x대에서는 저렇게 복잡하게 그래프의 생성과 실행을 분리했느냐라고 생각해 볼 수 있는데요. 해당 형태가 성능상(=속도)의 이점이 있기 때문입니다.

여기서 @tf.function 관련된 내용이 나오게 되는데요. def 위에 @tf.fucnction annotation을 붙이면 마치 tf2.x 버전에서도 tf1.x 형태처럼 그래프 생성과 실행이 분리된 형태로 해당 함수내의 로직이 실행되게 됩니다. 따라서 상황에 따라서 성능이 약간 향상 될 수 있는데요.(=실행 속도가 약간 빨라질 수 있습니다.) 다만 해당 annoation을 붙이면 tf1.x처럼 해당 함수내의 값을 바로 계산해볼수 없어서 디버깅이 불편해질수 있습니다. 따라서 모든 로직에 대한 프로그래밍이 끝난 상태에서 @tf.fuction을 붙이는 것이 좋습니다.

즉 정리하면
1. @tf.fucntion annotation을 붙이면 tf1.x 스타일로 해당 함수내의 로직이 동작한다.
2. 따라서 상황에 따라 속도가 약간 빨라질 수 있다.
3. 다만 해당 annotation을 붙이면 값을 바로 계산해볼수 없어서 모든 로직에 대한 프로그래밍이 끝난 뒤에 붙이는 것이 좋다.

이렇게 생각하시면 될 것 같습니다.
더 자세한 내용은 아래 링크를 참조하세요.
https://www.tensorflow.org/guide/function?hl=ko 

감사합니다~.

22강 코드 call()메서드 is_training -> model(x,False)로 호출시 밸류에러 참고

0

47

1

선형 회귀 모델에 대해서 질문 있습니다

0

253

2

tf.keras.model.reset_states()

0

745

2

[질문]colab환경에서 텐서보드(TensorBoard)를 이용해서 학습과정 시각화(Visualization)하기강의 관련 질문

0

499

2

[질문]colab환경에서 tf.train.CheckpointManager API를 이용해서 파라미터 저장하고 불러오기 실행에 대한 질문

0

286

2

colab에서 구동 가능한 char-rnn 코드 관련 질문

0

217

1

안녕하세요 파이썬이랑 tensorflow 정확한 버전 알수있을까요?

0

249

1

colab 환경에서 Autoencoder 구현하였으나 결과가 보이지 않는 분들 참고사항

0

209

1

Mnist 에 keras를 통해 softmax를 활용한 regerssion error 발생

0

2098

2

GRU 리셋게이트, 포겟게이트 질문

0

259

1

ANN 구현

0

347

1

char-rnn 코랩 에러 ... 못보나요,, cpus는 너무 느려서

0

589

1

ANN으로 Mnist 숫자분류기 코드질문

0

293

1

ppt 12p 질문

0

381

1

keras에서 이미 정의된 모델을 가져와 학습할 경우

0

654

1

모델 코드 질문

0

368

1

코드 질문

0

277

1

ppt 10p

0

384

1

ppt 13p 추가 질문

0

256

1

ppt 9p 추가 질문

0

264

1

ppt 5p 질문

0

320

1

ppt 9p 질문

0

281

1

vanishing gradient

0

273

1

TensorFlow 2.0을 이용한 CIFAR-10 이미지 분류를 위한 CNN 구현 질문

0

256

1