묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결TensorFlow 2.0으로 배우는 딥러닝 입문
tf.keras.model.reset_states()
파이썬 버전이 다른지 텐서플로우 버전이 다른지 모르겠지만 자꾸 코드가 실행되지 않는 부분들이 있어 조금식 바꿔가면서 강의 듣고 있습니다. 그러던 중 Char-RNN실습에서 tf.keras.Model.reset_states()에 오류가 생겨 질문 드립니다. class exModel(tf.keras.Model): def __init__(self): super(exModel, self).__init__() self.layer = tf.keras.layers.Dense(10, activation = None, kernel_initializer = 'zeros', bias_initializer = 'zeros') def call(self, x): logits = self.layer(x) return logits My_model = exModel() My_model.reset_states()결과 :'exModel' object has no attribute 'reset_states' Tensorflow : 2.16.1Python : 3.10.13실습 파일 : train_and_sampling_v2_keras.py ==================================================================실습 코드 :# -*- coding: utf-8 -*- # Char-RNN 예제 - Keras API를 이용한 구현 # Reference : https://github.com/tensorflow/docs/blob/master/site/en/tutorials/text/text_generation.ipynb from __future__ import absolute_import, division, print_function, unicode_literals #python 2와 호완 from absl import app #Google에서 만든 API / Tensorflow와 같이 쓰이니 공부해두자 import tensorflow as tf import numpy as np import os import time # input 데이터와 input 데이터를 한글자씩 뒤로 민 target 데이터를 생성하는 utility 함수를 정의합니다. def split_input_target(chunk): input_text = chunk[:-1] target_text = chunk[1:] return input_text, target_text # 학습에 필요한 설정값들을 지정합니다. data_dir = tf.keras.utils.get_file('shakespeare.txt', 'https://storage.googleapis.com/download.tensorflow.org/data/shakespeare.txt') # shakespeare #data_dir = './data/linux/input.txt' # linux batch_size = 64 # Training : 64, Sampling : 1 ''' 기존 : [batch_size, data_dimension] 시계열 데이터 : [batch_size, sequence_len,data_dimension] ''' seq_length = 100 # Training : 100, Sampling : 1 #몇 글자를 한 시퀀스로 할 것인가 embedding_dim = 256 # Embedding 차원 hidden_size = 1024 # 히든 레이어의 노드 개수 num_epochs = 10 # 학습에 사용할 txt 파일을 읽습니다. text = open(data_dir, 'rb').read().decode(encoding='utf-8') # 학습데이터에 포함된 모든 character들을 나타내는 변수인 vocab과 # vocab에 id를 부여해 dict 형태로 만든 char2idx를 선언합니다. vocab = sorted(set(text)) # 유니크한 character vocab_size = len(vocab) print('{} unique characters'.format(vocab_size)) char2idx = {u: i for i, u in enumerate(vocab)} ''' character - index(int) mapping ''' idx2char = np.array(vocab) # 학습 데이터를 character에서 integer로 변환합니다. text_as_int = np.array([char2idx[c] for c in text]) # split_input_target 함수를 이용해서 input 데이터와 input 데이터를 한글자씩 뒤로 민 target 데이터를 생성합니다. char_dataset = tf.data.Dataset.from_tensor_slices(text_as_int) sequences = char_dataset.batch(seq_length+1, drop_remainder=True) dataset = sequences.map(split_input_target) # tf.data API를 이용해서 데이터를 섞고 batch 형태로 가져옵니다. dataset = dataset.shuffle(10000).batch(batch_size, drop_remainder=True) #================================데이터 구성=========================================== # tf.keras.Model을 이용해서 RNN 모델을 정의합니다. class RNN(tf.keras.Model): def __init__(self, batch_size): super(RNN, self).__init__() self.embedding_layer = tf.keras.layers.Embedding(vocab_size, embedding_dim) #기본 예제라 특수적으로 임베딩 차원이 더 크게 했다 #batch_input_shape=[batch_size, None] self.hidden_layer_1 = tf.keras.layers.LSTM(hidden_size, return_sequences=True, stateful=True, recurrent_initializer='glorot_uniform') self.output_layer = tf.keras.layers.Dense(vocab_size) def call(self, x): embedded_input = self.embedding_layer(x) features = self.hidden_layer_1(embedded_input) logits = self.output_layer(features) return logits # sparse cross-entropy 손실 함수를 정의합니다. def sparse_cross_entropy_loss(labels, logits): return tf.reduce_mean(tf.keras.losses.sparse_categorical_crossentropy(labels, logits, from_logits=True)) #sparse_categorical_crossentropy : one - hot encoding까지 알아서 해줌 # 최적화를 위한 Adam 옵티마이저를 정의합니다. optimizer = tf.keras.optimizers.Adam() # 최적화를 위한 function을 정의합니다. @tf.function def train_step(model, input, target): with tf.GradientTape() as tape: logits = model(input) loss = sparse_cross_entropy_loss(target, logits) grads = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(grads, model.trainable_variables)) return loss def generate_text(model, start_string): num_sampling = 4000 # 생성할 글자(Character)의 개수를 지정합니다. # start_sting을 integer 형태로 변환합니다. input_eval = [char2idx[s] for s in start_string] input_eval = tf.expand_dims(input_eval, 0) # 샘플링 결과로 생성된 string을 저장할 배열을 초기화합니다. text_generated = [] # 낮은 temperature 값은 더욱 정확한 텍스트를 생성합니다. # 높은 temperature 값은 더욱 다양한 텍스트를 생성합니다. temperature = 1.0 # 여기서 batch size = 1 입니다. model.reset_states() for i in range(num_sampling): predictions = model(input_eval) # 불필요한 batch dimension을 삭제합니다. predictions = tf.squeeze(predictions, 0) # 모델의 예측결과에 기반해서 랜덤 샘플링을 하기위해 categorical distribution을 사용합니다. predictions = predictions / temperature predicted_id = tf.random.categorical(predictions, num_samples=1)[-1,0].numpy() # 예측된 character를 다음 input으로 사용합니다. input_eval = tf.expand_dims([predicted_id], 0) # 샘플링 결과를 text_generated 배열에 추가합니다. text_generated.append(idx2char[predicted_id]) return (start_string + ''.join(text_generated)) def main(_): # Recurrent Neural Networks(RNN) 모델을 선언합니다. RNN_model = RNN(batch_size=batch_size) # 데이터 구조 파악을 위해서 예제로 임의의 하나의 배치 데이터 에측하고, 예측결과를 출력합니다. #Sanity Check : 데이터 문제 없는지 확인 for input_example_batch, target_example_batch in dataset.take(1): example_batch_predictions = RNN_model(input_example_batch) print(example_batch_predictions.shape, "# (batch_size, sequence_length, vocab_size)") # 모델 정보를 출력합니다. RNN_model.summary() # checkpoint 데이터를 저장할 경로를 지정합니다. checkpoint_dir = './training_checkpoints' checkpoint_prefix = os.path.join(checkpoint_dir, "ckpt_{epoch}") for epoch in range(num_epochs): start = time.time() # 매 반복마다 hidden state를 초기화합니다. (최초의 hidden 값은 None입니다.) hidden = RNN_model.reset_states() for (batch_n, (input, target)) in enumerate(dataset): loss = train_step(RNN_model, input, target) if batch_n % 100 == 0: template = 'Epoch {} Batch {} Loss {}' print(template.format(epoch+1, batch_n, loss)) # 5회 반복마다 파라미터를 checkpoint로 저장합니다. if (epoch + 1) % 5 == 0: RNN_model.save_weights(checkpoint_prefix.format(epoch=epoch)) print ('Epoch {} Loss {:.4f}'.format(epoch+1, loss)) print ('Time taken for 1 epoch {} sec\n'.format(time.time() - start)) RNN_model.save_weights(checkpoint_prefix.format(epoch=epoch)) print("트레이닝이 끝났습니다!") sampling_RNN_model = RNN(batch_size=1) sampling_RNN_model.load_weights(tf.train.latest_checkpoint(checkpoint_dir)) sampling_RNN_model.build(tf.TensorShape([1, None])) sampling_RNN_model.summary() # 샘플링을 시작합니다. print("샘플링을 시작합니다!") print(generate_text(sampling_RNN_model, start_string=u' ')) if __name__ == '__main__': # main 함수를 호출합니다. app.run(main)결과 :AttributeError: 'RNN' object has no attribute 'reset_states'tf.keras.layers.Embedding에 batch_input_shape에서 오류가 발생해서,https://www.tensorflow.org/api_docs/python/tf/keras/layers/Embedding 참고해서 지웠고, 다른 부분은 안 건드렸습니다.tf.keras.layers.Embedding( input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, embeddings_constraint=None, mask_zero=False, weights=None, lora_rank=None, **kwargs )
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
마지막에 bird -> frog 말고도 deer -> frog 도 잘못된것 아닌가요??
마지막에 bird -> frog 말고도 deer -> frog 도 잘못된것 아닌가요??- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결TensorFlow 2.0으로 배우는 딥러닝 입문
[질문]colab환경에서 텐서보드(TensorBoard)를 이용해서 학습과정 시각화(Visualization)하기강의 관련 질문
안녕하세요. AISchool 강사님 이전 강의와 비슷한 내용의 질문 입니다. colab환경에서 tensorboard 결과를 확인할 수 있는 방법이 없나요? 코드를 colab환경에서 실행시켰는데, 제 드라이버에서는 tensorboard와 관련된 파일이 보이지 않아서 문의 드립니다.
-
미해결TensorFlow 2.0으로 배우는 딥러닝 입문
[질문]colab환경에서 tf.train.CheckpointManager API를 이용해서 파라미터 저장하고 불러오기 실행에 대한 질문
안녕하세요. AISchool 강사님checkpoint 강의 중 질문사항이 발생해서 질문 드리게 되었습니다.checkpointmanagerAPI를 이용해서 파라미터 저장하고 불러오기 에서 colab에서 실행시키면 model 이라는 디렉터리가 안만들어지 던데.colab은 checkpoint가 동작하지 않는 건가요?colab에서 코드를 실행시킨 후 제 드라이버를 확인해 보면 model 디렉터리가 만들어지지 않고 checkpoint를 저장한 파일들이 보이지 않아서 질문 드립니다.
-
해결됨Google 공인! 텐서플로(TensorFlow) 개발자 자격증 취득
안녕하세요 강의자료랑 기출문제 요청드립니다.
안녕하세요!!강의자료와 기출문제를 메일로 받아볼 수 있을까요?공부하면서 내용이 필요하여 부탁드립니다~ 메일은 rgn2002@naver.com입니다!!감사합니다
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
일반적인 질문 (kaggle notebook사용)
안녕하세요, 좋은 컨텐츠 만들어주셔서 진심으로 감사드립니다. 수강 중 일반적인 질문하나 드리고 싶습니다.kaggle notebook도 설치되어있는 패키지가 자동적으로 계속 업데이트가 될텐데, 이 경우 이후에 현재 작동중인 코드가 실행되지 못할수도 있을거 같다는 생각이 듭니다.이를 위해서 어떻게 제가 미리 조치를 하면 좋을까요?가령, 강의에서 사용하신 특정 버전 라이브러리로만 구성된 kaggle kernel을 생성한다던가 이런 방법이 있는지 혹은 가능한지 궁금합니다.감사합니다!
-
해결됨TensorFlow 2.0으로 배우는 딥러닝 입문
colab에서 구동 가능한 char-rnn 코드 관련 질문
안녕하세요. 강사님다른 분의 질문에서 확인 colab향 char-rnn 코드를 보다가 질문 사항이 생겼습니다. colab향 코드와 강의에서 설명한 python 코드의 차이를 보면 app.run과 같은 absl 라이브러리 관련 코드가 colab향 코드에는 없는데, 이게 colab에서는 absl 라이브러리를 import 할 수 없기 때문이지 궁금합니다. 신기한게 강의에서는 구글에서 absl 라이브러리를 만든 것으로 제가 들은 것 같은데, 정작 google의 colab 환경에서는 해당 라이브러리를 사용할 수 없다는 사실이 신기 합니다. P.S 혹시 colab 환경에서 실행 가능한 char-rnn 코드 URL주소https://colab.research.google.com/drive/1Lr-tdAWh6sJdmAcOCmimHOIaK54idw-t?usp=sharing
-
해결됨Google 공인! 텐서플로(TensorFlow) 개발자 자격증 취득
안녕하세요. 강의자료랑 기출문제 부탁드리겠습니다.
kimyh03160@naver.com 입니다.그리고 윈도우용 배치파일 다운로드 링크 접속이 안되네요. 확인 부탁드립니다.
-
해결됨Google 공인! 텐서플로(TensorFlow) 개발자 자격증 취득
강의자료
강의자료와 기출문제를 메일로 받아볼 수 있을까요?필기하면서 공부하고 싶은데 찾을수가 없어서요ㅜㅜlu5671@gmail.com으로 부탁드립니다!!
-
미해결비전공자/입문자를 위한 Data Science(DS)와 AI 학습 & 취업 가이드
강의자료 부탁드려도 될까요?
강의가 너무 잘 정리되어 있어서 복습하고 싶은데강의자료를 받을 수 있을까요? gustjs93@naver.com으로 부탁드립니다. 감사합니다!
-
미해결파이썬을 활용한 머신러닝 딥러닝 입문
션 7. CNN (Convolutional Neural Network)의 7번째 강의는 실습 - FashionMNIST 데이터셋 이용 실습 문제 풀이 관련 강의 내용순서 문의
섹션 7. CNN (Convolutional Neural Network) - 합성곱 신경망 6번째 실습 - 문제 설명 (LeNet 모델 구축 - MNIST 데이터셋 이용)의 끝부분이 one hot encoding인데 다음 7번째 강의는 실습 - FashionMNIST 데이터셋 이용 실습 문제 풀이로 앞의 강의 Mnist 손글씨에 대한 코드 설명 부분이 빠진 것 같아 연결이 잘 안됩니다.... 원래 영상이 그런지 확인 부탁드려요. 감사합니다.
-
미해결모두를 위한 대규모 언어 모델 LLM Part 3 - 구글 제미나이(Google Gemini) API, OpenAI API와 젬마(Gemma)로 AI 어플리케이션 만들기
PDF RAG 제작 프로젝트 진행 중 답변 정확도를 올리기 위해 무엇을 해야 할지 모르겠습니다.
안녕하세요! 현재 Gemini, Streamlit, LangChain을 이용하여 오류 Q&A 모음 PDF 문서를 학습시켜 해당 문서로 질의응답을 할 수 있는 RAG Chatbot을 구현하는 중에 있습니다.PDF 내용이 정제가 되어 있지 않지만 175개의 모든 페이지를 다 읽어온 것은 확인했는데 같은 페이지에 있는 내용이더라도 답변하는 것이 있고 아닌 것이 있습니다. 또한 같은 질문을 해도 어떤 때는 잘 대답하고 어떤때는 문서에 없다고 대답하는 현상을 발견하고 있습니다... 이런 현상들의 원인이 뭔지 또한 학습시키는 문서를 정제하면 대답 정확도가 조금 올라가는지..어떤 형식으로 문서를 정제해야 할지, PDF보단 WORD나 CSV 파일이 더 정확도가 올라갈지 등등ChatBot의 정확도를 올릴려면 어떤 방식들을 시도해 봐야 하는지 감이 잡히지 않아 질문드립니다.
-
미해결모두를 위한 대규모 언어 모델 LLM Part 3 - 구글 제미나이(Google Gemini) API, OpenAI API와 젬마(Gemma)로 AI 어플리케이션 만들기
[긴급 최종질문수정16:47] 지금 이런 에러가 계속해서 연달아 나고 있는데 진행이 아예 안 됩니다
해결됐어요
-
해결됨[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
7강 폴더 만들
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 폴더 만드는 부분에서 directory_create('x/x')를 하게 되면 x에 어떤 이름을 넣어도 다 이미 만들어졌다고만 뜨고 실제 드라이브 들어가면 아무것도 폴더가 생성이 안되었는데, 왜 그런건지 잘 모르겠어요. 그리고 현재 디렉토리 위치 설정하는 것도 이런 오류가 발생하는데, 구글 드라이브 마운트 할 때는 잘 됐었는데 이런 오류가 발생하네요..! cd/~ 의 코드를 실행하면 현재 디렉토리를 cd/~에서 ~에 해당하는 디렉토리로 이동해주는게 아닌가요? 아래 사진은 현재 드라이브 디렉토리 경로입니다!
-
미해결처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part3]
test data 의 loss 계산식 문의
10_ADVANCE-EXAMPLE-MILTI-LABEL-CLASSIFICATION 과 11_MILTI-LABEL-CLASSIFICATION-DROPOUT-BATCHNORMALIZATION 강의자료에서 맨 밑부분의 테스트셋 기반 Evaluation 에서 test_loss 를 계산할 때 전체 데이터인 10000으로 나누셨는데, 왜 그러신건지 궁금해서 질문드립니다.train 과 validation 의 loss 계산은 train_batches 와 val_batches 개수(for문 도는 횟수) 만큼만 나누셨는데 test loss 를 계산할 때는 minibatch 가 아닌 전체 데이터로 나누셔서 상대적으로 test data 의 loss 값이 작아보여서요.test_loss = 0correct = 0wrong_samples, wrong_preds, actual_preds = list(), list(), list()model.eval()with torch.no_grad(): for x_minibatch, y_minibatch in test_batches: y_test_pred = model(x_minibatch.view(x_minibatch.size(0), -1)) test_loss += loss_func(y_test_pred, y_minibatch) pred = torch.argmax(y_test_pred, dim=1) correct += pred.eq(y_minibatch).sum().item() wrong_idx = pred.ne(y_minibatch).nonzero()[:, 0].numpy().tolist() for index in wrong_idx: wrong_samples.append(x_minibatch[index]) wrong_preds.append(pred[index]) actual_preds.append(y_minibatch[index]) test_loss /= len(test_batches.dataset)
-
미해결따라하면서 배우는 3D Human Pose Estimation과 실전 프로젝트
2D pose estimation model
해당 강의에서 2D pose estimation을 진행하는데, 어떤 모델을 사용하는지 알 수 있을까요 ㅎㅎ?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
tiny kitti 데이터로 MMDectection Train 실습에서 클래스 id 질문
기존에 학습된 모델을 가지고 새로운 데이터로 학습하는데, 라벨이 기존 학습된 모델의 라벨과 맞춰져야 하는 거 아닌가요? gt_labels.append(cat2label[bbox_name])에서 'Car', 'Truck', 'Pedestrian','Cyclist' 의 라벨번호가기존 학습된 모델의 'Car', 'Truck', 'Pedestrian','Cyclist'의 라벨번호와 같아야 하는 것이 아닌지 문의합니다.
-
해결됨딥러닝 이론 + PyTorch 실무 완전 정복
Section14 관련 질문요청드립니다.
83쪽에 '예를 들어 (3*3) Conv.Kernel 2개를 쌓은 경우 Receptive Field는 (7*7)이 된다!'라고 하셨는데 Kernel이 쌓이는게 아니라 Layer 아닌가요?? 혹시 제가 잘못 이해하고 있었다면 지금까지 각 Layer마다 하나의 kernel만 훑고 지나가는 줄 알고 있어서 Kernel이 쌓인다 라는 개념을 잘 모르겠습니다.기존 ANN에서 Bias를 더하는 개념과 ResNet에서Residual Connection을 더하는 개념의 차이를 잘 모르겠습니다. 둘다 비슷하게 느껴집니다 ㅠㅠ.
-
미해결따라하면서 배우는 골프 자세 검출, Human Pose를 이용한 Event Detection
17:00 링크를 어디에 걸어뒀다는거에요?
4강 2번째 강의 17분 부분입니다.
-
미해결딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)
seq2seq 모델
seq2seq 모델에 기반으로encoder-decoder, teacherforce 모델이 생긴것인가요?아니면 3개다 각각의 모델인가요?