inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

@tf.function 데코레이터 사용시 ValueError 문제 질문

미해결

커피 한 잔으로 입문하는 Convolutional Neural Network

안녕하세요? 알찬 교육에 정말 감사드립니다. trainer(), validation(), tester() 함수를 정의해서 학습을 시킬때... 그냥 학습시키면 작동이 되는데, @tf.function 데코레이터만 붙여서 사용하면 ValueError 예외가 발생하는데요, 집의 컴퓨터에서 돌릴때와 코랩에서 돌릴 때 동일한 issue 가 생깁니다. 만약 for epoch in range (EPOCHS): 이후의 코드 대신에 model. compile (optimizer= 'adam' ,loss = 'sparse_categorical_crossentropy' , metrics =[ 'accuracy' ]) history = model.fit(train_ds, validation_data=validation_ds, epochs=EPOCHS) 와 같이 model.compile 이나 model.fit 을 통해서 학습시키는 경우에는 @tf.function 데코레이터가 제대로 작동합니다; 제가 만든 아래 코드 중에서 뭐가 문제일까요?? ㅠㅠ 그리고 학습 데이터 뿐아니라 validation 이나 test data 도 100% 예측성능이 나와서 제대로 한것이 맞나도 모르겠네요 ㅠㅠ 코드를 한번 점검해 주실 수 있으실지.... 문의 드립니다. --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-1-896c4f98ef4d> in <module> () 120 121 for epoch in range ( EPOCHS ) : --> 122 trainer ( ) 123 validation ( ) 124 8 frames /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/func_graph.py in wrapper (*args, **kwargs) 975 except Exception as e : # pylint:disable=broad-except 976 if hasattr ( e , "ag_error_metadata" ) : --> 977 raise e . ag_error_metadata . to_exception ( e ) 978 else : 979 raise ValueError : in user code: <ipython-input-1-896c4f98ef4d>:91 trainer * for images, labels in train_ds: /usr/local/lib/python3.6/dist-packages/tensorflow/python/autograph/operators/control_flow.py:424 for_stmt iter_, extra_test, body, get_state, set_state, symbol_names, opts) /usr/local/lib/python3.6/dist-packages/tensorflow/python/autograph/operators/control_flow.py:719 _tf_dataset_for_stmt _verify_loop_init_vars(init_vars, symbol_names) /usr/local/lib/python3.6/dist-packages/tensorflow/python/autograph/operators/control_flow.py:193 _verify_loop_init_vars raise ValueError(error_msg) ValueError: 'predictions' must be defined before the loop. --- 아래 부터 full code 입니다 --- import numpy as np import matplotlib.pyplot as plt from termcolor import colored import tensorflow as tf import tensorflow_datasets as tfds from tensorflow.keras.models import Model, Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Activation, Dropout from tensorflow.keras.losses import SparseCategoricalCrossentropy from tensorflow.keras.optimizers import Adam, SGD from tensorflow.keras.metrics import Mean, SparseCategoricalAccuracy # data pre processing def get_mnist_dataset_and_normalize ( ratio , n_batch_train , n_batch_test ): def normalization ( images , labels ): images = tf.cast(images, tf.float32)/ 255 labels = tf.cast(labels, tf.int32) return images, labels (train_validation_ds, test_ds), ds_info = tfds.load(name= 'mnist' , as_supervised = True , shuffle_files = True , with_info = True , split = [ 'train' , 'test' ]) n_train_validation = ds_info.splits[ 'train' ].num_examples n_train = int(ratio * n_train_validation) n_validation = n_train_validation - n_train train_ds = train_validation_ds.take(n_train) validation_ds = train_validation_ds.skip(n_train) train_ds = train_ds. map (normalization).shuffle( 1000 ).batch(n_batch_train) validation_ds = validation_ds. map (normalization).batch(n_batch_train) test_ds = test_ds. map (normalization).batch(n_batch_test) return train_ds, validation_ds, test_ds # hyper parameter 와 인스턴스 정의 EPOCHS = 10 n_batch_train = 32 n_batch_test = 32 ratio = 0.8 LR = 0.001 # 데이터 불러오기 train_ds, validation_ds, test_ds = get_mnist_dataset_and_normalize(ratio, n_batch_train, n_batch_test) class CNN_Model ( Model ): def __init__ ( self ): super(CNN_Model, self ). __init__ () # feature extractor self .conv1 = Conv2D(filters= 8 , kernel_size= 5 , padding= 'same' , activation= 'relu' ) self .conv1_maxpool = MaxPooling2D(pool_size= 2 , strides= 2 ) self .conv2 = Conv2D(filters= 8 , kernel_size= 5 , padding= 'same' , activation= 'relu' ) self .conv2_maxpool = MaxPooling2D(pool_size= 2 , strides= 2 ) # Classifier self .flatten = Flatten() self .dense1 = Dense(units= 64 , activation= 'relu' ) self .dense1_dropout = Dropout( 0.5 ) self .dense2 = Dense(units= 10 , activation= 'softmax' ) def call ( self , x ): x = self .conv1(x) x = self .conv1_maxpool(x) x = self .conv2(x) x = self .conv2_maxpool(x) x = self .flatten(x) x = self .dense1(x) x = self .dense1_dropout(x) x = self .dense2(x) return x # 각종 인스턴스 정의 model = CNN_Model() loss_object = SparseCategoricalCrossentropy() optimizer = Adam(learning_rate=LR) loss_train = Mean() loss_validation = Mean() loss_test = Mean() acc_train = SparseCategoricalAccuracy() acc_validation = SparseCategoricalAccuracy() acc_test = SparseCategoricalAccuracy() @tf.function def trainer (): # 하나의 epoch 내에서 학습데이터로 모델 학습시키는 함수 global model, loss_object, loss_train, acc_train, optimizer for images, labels in train_ds: with tf.GradientTape() as tape: predictions = model(images) loss = loss_object(labels, predictions) gradients = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients( zip (gradients, model.trainable_variables)) loss_train(loss) acc_train(labels, predictions) @tf.function def validation (): # 하나의 epoch 내에서 학습데이터로 모델 학습시키는 함수 global model, loss_object, loss_validation, acc_validation for images, labels in validation_ds: predictions = model(images) loss = loss_object(labels, predictions) loss_validation(loss) acc_validation(labels, predictions) @tf.function def tester (): # 하나의 epoch 내에서 학습데이터로 모델 학습시키는 함수 global model, loss_object, loss_test, acc_test for images, labels in test_ds: predictions = model(images) loss = loss_object(labels, predictions) loss_test(loss) acc_test(labels, predictions) for epoch in range (EPOCHS): trainer() validation() print (colored( 'Epoch' , 'red' , 'on_white' ), epoch+ 1 ) print ( "Train Loss : {:.4f} / Train Accuracy : {:.2f}" . format (loss_train.result(), acc_train.result()* 100 )) print ( "Validation Loss : {:.4f} / Validation Accuracy : {:.2f}" . format (loss_validation.result(), acc_validation.result()* 100 )) loss_train.reset_states() loss_validation.reset_states() acc_train.reset_states() acc_validation.reset_states() tester() print (colored( 'TEST' , 'cyan' , 'on_white' )) print ( "Test Loss : {:.4f} / Test Accuracy : {:.2f}" . format (loss_test.result(), acc_test.result()* 100 )) 아래 결과가 @tf.function 를 지우고 돌렸을 때의 결과 입니다. 정상적으로 학습이 되는데 Validation Accuracy 나 Test Accuracy 가 100% 로 나오는데... 원래 MNIST 정도의 데이터는 이렇게 잘 맞는 건가요?? ;; ================= Epoch 1 Train Loss : 0.2663 / Train Accuracy : 96.88 Validation Loss : 0.1054 / Validation Accuracy : 96.88 Epoch 2 Train Loss : 0.0721 / Train Accuracy : 100.00 Validation Loss : 0.0400 / Validation Accuracy : 100.00 Epoch 3 Train Loss : 0.0665 / Train Accuracy : 100.00 Validation Loss : 0.0373 / Validation Accuracy : 100.00 Epoch 4 Train Loss : 0.0575 / Train Accuracy : 96.88 Validation Loss : 0.0157 / Validation Accuracy : 100.00 Epoch 5 Train Loss : 0.1948 / Train Accuracy : 90.62 Validation Loss : 0.0192 / Validation Accuracy : 100.00 Epoch 6 Train Loss : 0.0520 / Train Accuracy : 96.88 Validation Loss : 0.0250 / Validation Accuracy : 100.00 Epoch 7 Train Loss : 0.0365 / Train Accuracy : 100.00 Validation Loss : 0.0134 / Validation Accuracy : 100.00 Epoch 8 Train Loss : 0.0342 / Train Accuracy : 100.00 Validation Loss : 0.0166 / Validation Accuracy : 100.00 Epoch 9 Train Loss : 0.0837 / Train Accuracy : 96.88 Validation Loss : 0.0062 / Validation Accuracy : 100.00 Epoch 10 Train Loss : 0.0166 / Train Accuracy : 100.00 Validation Loss : 0.0112 / Validation Accuracy : 100.00 TEST Test Loss : 0.0096 / Test Accuracy : 100.00

  • 인공신경망
  • 머신러닝 배워볼래요?
  • 딥러닝
아쿠아라이드 댓글 0 좋아요 0 조회수 245

자동등록에서는 이 방법을 사용할 수 없나요?

미해결

스프링 핵심 원리 - 기본편

@Component에서도 적용이 될까 싶어서 @Component(initMethod = "init", detroyMethod = "close") 를 해봤는데 컴파일 에러가 나네요. 이 방법은 수동 등록에서만 가능한 방법인건가요?

  • spring
  • oop
akakakakak 댓글 4 좋아요 7 조회수 339

fixed 된 곳에서 scroll not working

미해결

애플 웹사이트 인터랙션 클론!

안녕하세요 해당 강의를 거의 다 듣고, 혼자 해보고 있는데, sticky-elem에서 fixed로 준 영역에서 스크롤이 되지 않는 이슈가 발생했습니다. 아무리 해결하려고 해도 해결이 되지를 않네요,, 혹시 도움 받을 수 있을가요,, 영상 촬영은 했는데요,, 어떻게 올리는지 몰라서 못했습니다. 조금 더 상황을 설명하면, sticky-elem영역(fixed된 영역) 부분에서 스크롤이 되지 않는 버그가 일어납니다. 이런 저런 방법을 사용해도 잘안되네요 ㅜㅜ

  • 클론코딩
  • javascript
  • 웹 디자인
  • svg
  • 인터랙티브-웹
  • HTML/CSS
유상원 댓글 3 좋아요 0 조회수 294

수업자료

미해결

페이스북 클론 - full stack 웹 개발

facebook master 자료는 어디에 첨부되어 있나요?

  • javascript
  • django
  • HTML/CSS
  • linux
  • python
  • 클론코딩
rlaworud159 댓글 1 좋아요 0 조회수 191

@ModelAttribute 질문입니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

@GetMapping ( "/orders" ) public String orderList (Model model , OrderSearch orderSearch) { List<Order> orders = orderService .findOrders(orderSearch) ; model.addAttribute( "orders" , orders) ; return "order/orderList" ; } @ModelAttibute가 궁금해서 이걸 빼놓고 실행하면 안될거 같아서 빼고 한번 실행해 봤는데 정상적으로 잘 동작했습니다. 제가 생각할땐 thymeleaf에 ${orderSearch}가 있는데 @ModelAttibute("orderSearch")를 빼놓고 쓰면 실행이 안되는게 정상일거 같은데.. 왜 실행이 돼는지 궁금합니다.

  • spring-boot
  • java
  • JPA
  • spring
  • 웹앱
qkrwnstns52 댓글 2 좋아요 1 조회수 302

역수열 문제 관련 질문

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

안녕하세요 강사님 역수열 문제를 풀다가 제 코드가 논리상에 오류가 있는지와 효율성에 대해 알고 싶어서 질문드립니다. 저는 이전 강의에서 강사님께서 알려주신 deque를 이용해서 문제를 풀었습니다. deque를 선언하고 큰 수부터 내림차순으로 위치 배치를 수행했습니다. 특정 숫자와 특정숫자보다 큰 수의 갯수는 인덱스로 deque의 insert 연산을 이용하였는데요 deque의 insert연산을 사용하는 알고리즘이 정적 크기 list를 선언하고 배치하는 알고리즘과 효율성이 얼마나 차이가 나는지 알고 싶습니다. 또 제 코드의 논리가 맞는지도 알고 싶습니다 import sys from collections import deque def solution(n, lst): dq = deque() for i in range(n, 0, -1): dq.insert(lst.pop(),i) return " ".join(list(map(str, dq))) if __name__ == "__main__": sys.stdin = open("input9.txt", "r") n = int(input()) lst = list(map(int, input().split())) answer = solution(n, lst) print(answer)

  • python
  • 코테 준비 같이 해요!
댓글 1 좋아요 0 조회수 159

jpa도서관련 질문입니다

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

다름이 아니라, 자바 orm표준 jpa프로그래밍 도서를 구매하려고 하는데 2015년 출판이어서 질문을 남깁니다. 가끔 어떤 도서를 보면 바뀐 부분이 많아 크게도움을 받지 못했던 경험이 있었는데, 현재기준에서 바뀐 부분이 많은지 여쭙고자 질문을 남깁니다. 강의와 함께 학습하고자 해서요...

  • spring-boot
  • java
  • spring
  • MVC
가보자!! 댓글 2 좋아요 0 조회수 294

colab gpu설정 관련 질문

해결됨

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

강사님 궁금한게 있습니다 !! 런타임 설정에서 gpu로 설정하고 영상에 디텍션을 적용했을때 수행시간이 줄어드는 이유가 gpu로 설정해서 그런건가요?? 런타임을 gpu로 설정하면 별다른 코드 없이도 자동 gpu할당이 되는건가요??

  • tensorflow
  • python
  • 딥러닝
  • 머신러닝 배워볼래요?
  • 컴퓨터-비전
  • keras
kihongkim 댓글 2 좋아요 0 조회수 309

브랜치 이름이 잘못 입력되었네요:)

미해결

실습 UI 개발로 배워보는 순수 javascript 와 VueJS 개발

TabView2가 아니라 Tab2입니다. 혹 브랜치가 없다고 나오는 분들은 참고하시라고 올려드려요 ㅎㅎ

  • javascript
  • vuejs
1219ssm 댓글 0 좋아요 3 조회수 157

Excel tier read 관련

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요 선생님, 좋은 강의 만들어주셔서 감사 인사부터 드립니다. 다름이 아니라, excel data 를 읽어오는 과정에서 문제가 생겼는데 Excel xlsx file; not supported 라는 문구만 나와서 해결방법을 여쭤봅니다. 감사합니다.

  • python
  • 머신러닝 배워볼래요?
  • 통계
‍김민석[학생](대학원 수학과) 댓글 1 좋아요 0 조회수 141

데브툴즈

[리뉴얼] React로 NodeBird SNS 만들기

삭제된 글입니다

  • redux
  • nodejs
  • react
  • express
  • Next.js
거북망고 댓글 3 좋아요 0 조회수 98

교안 문의

미해결

인공지능 기초수학

안녕하세요! 좋은 강의 잘 듣고 있습니다. 교안이 있다면 학습이 좀 더 효율적으로 진행될꺼 같습니다. 혹시 가능하시다면 아래 메일 주소로 부탁드리겠습니다. 감사합니다! harry2430@naver.com

  • 미적분
  • 통계
  • 선형대수학
23년엔꼬옥 댓글 0 좋아요 0 조회수 148

저는 이렇게 코딩했습니다(입력받기 및 정상체중과 자신의 체중비교)

미해결

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

잘 작동하는 코드입니다. 참조하시라고 복붙합니다. 기계설계 출신으로서 자율주행에 도전하느라고 고생하는 중이에요. 그래도 공부할 수 있어서 행복합니다. 참고로 저는 CATIA (3차원 설계) 강의올렸네요. 밑에 링크 첨부합니다. (https://www.youtube.com/channel/UCr0NXFTiyT2ccef8A1bKp4g/playlists) man_std_weight = 0 woman_std_weight = 0 height = 0 gender = '' def std_weight (height , gender , current_weight): if gender == ' 남자 ' : man_std_weight = round ((height * height * 22 ) / ( 10000 ) , 2 ) print ( ' 키 {0}cm 의 남자 표준 체중은 {1}kg 입니다 ' .format(height , man_std_weight)) dignose = round ((current_weight - man_std_weight) , 2 ) print ( float ( input ( ' 당신 ( 남자 ) 은 현재 {0} 만큼 과체중 입니다 .:' .format(dignose)))) else : #gender == ' 여자 ': woman_std_weight = round ((height * height * 21 )/( 10000 ) , 2 ) print ( ' 키 {0}cm 의 여자의 표준 체중은 {1}kg 입니다 ' .format(height , woman_std_weight)) dignose1 = round ((current_weight - woman_std_weight) , 2 ) print ( float ( input ( ' 당신 ( 여자 ) 은 현재 {0} 만큼 과체중 입니다 .:' .format(dignose1)))) return std_weight(( float ( input ( ' 키입력 :' ))) , ( str ( input ( ' 성별은 ?:' ))) , ( float ( input ( ' 당신의 체중입력 :' ))))

  • python
주원 댓글 1 좋아요 0 조회수 376

현업에서 PM, DM 을 나눠서 사용하는 경우가 있나요?

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

영한님 안녕하세요! 혹시 현업에서 PM(persistence model), DM(domain model)을 나눠서 개발하신 경우가 있을까요? 관련 article: https://www.mehdi-khalili.com/orm-anti-patterns-part-4-persistence-domain-model

  • java
  • JPA
레알이 댓글 5 좋아요 1 조회수 911

명령어 에러 질문

미해결

스프링 부트 개념과 활용

mac환경이 아니라서 window wsl에 docker 설치 후 진행하고 있습니다. docker exec로 배쉬 진입후 su - postgres psql springboot 명령어 친후 에러가 나는데요.. 해당 로그 캡쳐해서 올려드립니다.

  • spring-boot
  • java
  • spring
올리파 댓글 1 좋아요 1 조회수 290

글로벌 스타일 적용

미해결

[리뉴얼] React로 NodeBird SNS 만들기

styled-component를 사용하여서 글로벌 스타일을 변경하는 것이 antd만 가능한건가요 ?아니면 segmentic-ui나.. material-ui같은 것도 가능한건지.. (segmentic-ui의 경우에는 적용이 안되는 것 같았습니다..) +material-ui 는 되는 것 같습니다..이런걸 어떻게 판단해야하는 지 잘 모르겠어요 ㅜㅜ 적용이 안되는 경우는 css를 사용해야하나요 ?

  • react
  • redux
  • express
  • nodejs
  • Next.js
song 댓글 1 좋아요 0 조회수 175

htmltab

미해결

[R] KOSPI/KOSDAQ 전 종목 데이터 수집 및 관리

테이블을 못 찾는데.. 어떻게 하나요?ㅠ

  • R
  • 웹-크롤링
zff 댓글 4 좋아요 0 조회수 379

cannot import ASGI_Application module 'config.routing'

미해결

페이스북 클론 - full stack 웹 개발

어찌저찌해서 마지막 부분까지 왔는데요 모듈 import 하는 부분에서 에러가 나는 것 같습니다. 그래서 올려주신 소스코드 다 복사해서 붙여넣기 했는데도 동일한 에러가 발생하네요 ㅠㅠ

  • HTML/CSS
  • javascript
  • django
  • linux
  • python
  • 클론코딩
hello 댓글 1 좋아요 0 조회수 264

강의 중 질문이 있습니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

타임리프 주석으로 외부 변수 선언을 해주라는 메세지가 나오는데, 실행하는데는 아무 지장이 없습니다. 이부분 해결을 하기 위해 어떤 조치가 필요한가요?

  • MVC
  • java
  • spring-boot
  • spring
DongJin Seo 댓글 3 좋아요 0 조회수 250

인기 태그

인프런 TOP Writers

주간 인기글