- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 규제 부분 코드 실습 중 규제 클래스에 관해서 cross_val_score적용 시 NaN값이 반환되는 것이 확인되어 질문드립니다. 싸이킷런 버전의 경우 1.0.2버전인데 구글링을 했을 때는, 데이터 내에 NaN값이 있어서 그럴 것이라는데 제가 확인해봤을 때는 NaN값이 없었습니다. 혹시 버전과 관련된 문제일까요...? 동일 코드에 Ridge클래스대신 LinearRegression클래스로 대체시 정상적으로 코드가 동작하는 것을 확인하여 우선 Ridge클래스에 대한 문제로 간주하고 있습니다...ㅠ
OS: macOS python 3.10 버전을 사용하고 있고, sqlalchemy 2.0.19, pymysql 1.1.0 등등 최신 패키지 사용중입니다. from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker DATABASE_URL = "mysql+pymysql://root:todos@127.0.0.1/todos" engine = create_engine(DATABASE_URL, echo=True) SessionFactory = sessionmaker(autocommit=False, autoflush=False, bind=engine) connection.py 는 위와 같이 동일하게 작성했고, session.scalar(select(1)); 실행시 아래와 같은 오류가 발생하여 더 이상 진행을 할 수가 없습니다. Traceback (most recent call last): File "/Users/someone/Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/232.8660.197/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevconsole.py", line 364, in runcode coro = func() File "<input>", line 1, in <module> File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2296, in scalar return self._execute_internal( File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2131, in _execute_internal conn = self._connection_for_bind(bind) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1998, in _connection_for_bind return trans._connection_for_bind(engine, execution_options) File "<string>", line 2, in _connection_for_bind File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go ret_value = fn(self, *arg, **kw) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1123, in _connection_for_bind conn = bind.connect() File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3264, in connect return self._connection_cls(self) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 147, in __init__ Connection._handle_dbapi_exception_noconnection( File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2426, in _handle_dbapi_exception_noconnection raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 145, in __init__ self._dbapi_connection = engine.raw_connection() File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 3288, in raw_connection return self.pool.connect() File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 452, in connect return _ConnectionFairy._checkout(self) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 1267, in _checkout fairy = _ConnectionRecord.checkout(pool) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 716, in checkout rec = pool._do_get() File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/pool/impl.py", line 169, in _do_get with util.safe_reraise(): File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__ raise exc_value.with_traceback(exc_tb) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/pool/impl.py", line 167, in _do_get return self._create_connection() File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 393, in _create_connection return _ConnectionRecord(self) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 678, in __init__ self.__connect() File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 902, in __connect with util.safe_reraise(): File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__ raise exc_value.with_traceback(exc_tb) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 898, in __connect self.dbapi_connection = connection = pool._invoke_creator(self) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/engine/create.py", line 637, in connect return dialect.connect(*cargs, **cparams) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 615, in connect return self.loaded_dbapi.connect(*cargs, **cparams) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/pymysql/connections.py", line 358, in __init__ self.connect() File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/pymysql/connections.py", line 664, in connect self._request_authentication() File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/pymysql/connections.py", line 976, in _request_authentication auth_packet = _auth.caching_sha2_password_auth(self, auth_packet) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/pymysql/_auth.py", line 267, in caching_sha2_password_auth pkt = _roundtrip(conn, data) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/pymysql/_auth.py", line 120, in _roundtrip pkt = conn._read_packet() File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/pymysql/connections.py", line 772, in _read_packet packet.raise_for_error() File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error err.raise_mysql_exception(self._data) File "/Users/someone/.pyenv/versions/fastapi-env/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception raise errorclass(errno, errval) sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: YES)") (Background on this error at: https://sqlalche.me/e/20/e3q8) Check the PassWord Hashing Method: If the MySQL server is using caching_sha2_password but the client (like PyMySQL) doesn't support it, it can give rise to such issues. You can switch the MySQL user's password hashing method to mysql_native_password . 이런 글도 있어서 따라하고 새로 비밀번호를 todos 로 넣어줬는데도 마찬가지네요. 더 참고할만한 내용이 있을까요?
for review in train["review"]: sentences += KaggleWord2VecUtility.review_to_sentences(review, remove_stopwords=False) for review in unlabeled_train["review"]: sentences += KaggleWord2VecUtility.review_to_sentences(review, remove_stopwords=False) 섹션2 word2vec에서는 다음과 같이 train data와 unlabeled train data를 합쳐서 사용하고 있습니다. 각각 일부를 출력했을때 서로 다른 데이터로 보입니다. 이 데이터들을 사용해서 word2vec을 만들어주는데 word2vec에서 사용하는 단어의 개수를 늘려주기 위함인가요?
predictions, _ = self.transformer([encoder_input, output], training=False) # seq_len dimension에서 last token을 선택합니다. predictions = predictions[:, -1:, :] # (batch_size, 1, vocab_size) predicted_id = tf.argmax(predictions, axis=-1) 트랜스포머 최종 결과값으로 batch x seq_len x vocab_size 로 단어의 갯수만큼 확률 분포를 구하는 것을 이해했습니다. 그리고 추론단계의 번역이므로 1개의 단어씩 output으로 뽑아야 한다는 것도 알겠는데요. 위 코드에서 생성을 위해 seq_len dimension에서 last token을 선택하는 이유(predictions[:, -1:, :] 부분) 는 무엇인가요?
sample_decoder = Decoder(num_layers=2, d_model=512, num_heads=8, dff=2048, target_vocab_size=8000, maximum_position_encoding=5000) x = tf.random.uniform((64, 26), dtype=tf.int64, minval=0, maxval=200) output, attn = sample_decoder(x, enc_output=sample_encoder_output, training=False, look_ahead_mask=None, padding_mask=None) output.shape, attn['decoder_layer2_block2'].shape 위 코드 결과 output은 (TensorShape([64, 26, 512]), TensorShape([64, 8, 26, 62])) 인데요. atten output size 64 x 8 x 26 x 62는 batch x head num x seq_len x depth(=len_k) 의 사이즈일것 같은데요. depth의 경우, d_model(512) / num_head(8) = 64 가 되야하는게 아닌지요? 62인 이유가 궁금합니다.
제가 아직 word embedding 이 NN으로 들어갈 때 어떻게 학습하는지 개념이 헷갈리는것 같습니다. 먼저 기초적인 질문이라 죄송합니다 ^^;; 교재에서 Position-wise Feed Forward NN는 단어별로 별도로 적용된다고 설명해주셨는데요! 예를 들어, 강의 교재의 10(=seq_len=단어의 갯수) x 512(=d model) 이 dff가 2048인 Position-wise Feed Forward NN에 input으로 들어오면, 첫번째 단어(1x512 vector)가 feed forward nn에 들어와서 학습 후 동일한 nn에 두번째 단어(1x512 vector)가 들어와서 학습 ... 열번째 단어도 동일한 과정으로 feed forward nn이 학습되는 개념이라고 이해하면 될까요? 항상 상세한 답변에 감사드립니다.
# decoder 는 [h, c] 를 initial state 로 사용 decoder_inputs_ = Input(shape=(max_len_kor,), name="Decoder_Input") # decoder word embedding 은 pre-trained vector 를 사용 않음 decoder_embedding = Embedding(num_words_kor, EMBEDDING_DIM) decoder_inputs_x = decoder_embedding(decoder_inputs_) Q 1-1. training state에서는 위와 같이 decoder input이 한 문장의 seq를 모두 input으로 넣어주는데, 이는 teacher forcing을 위해 매 step 마다 seq 데이터(한 문장 데이터)를 input으로 모두 사용하기 때문인 것인가요? decoder_inputs_single = Input(shape=(1,), name='Decoder_input') x = decoder_embedding(decoder_inputs_single) Q 1-2. inference state에서는 위와 같이 input size가 1인 이유는, 매번 step마다 하나의 단어(번역할 단어=최초 <sos>, 그 후부터 이전 step의 output)만 input으로 사용하기 때문인가요? Q2. LSTM encoder의 경우 encoder output, h, c를 최종 산출물로 리턴해주는데요. h와 c가 context vector로 decoder의 input으로 입력된다고 이해하였습니다. 그렇다면, 번역 모델에서 encoder output은 어떤 값을 갖고 있으며 어떤 용도로 사용될 수 있을까요? 감사합니다!
안녕하세요! 강사님 강의를 끝까지 다 수강하였습니다. 너무 도움이 많이 되었습니다. 감사합니다. 부동산 매물 강의에 대한 공지를 보고 메일로 문의 드렸는데 아직 피드백이 오지 않아 이렇게 질문글로 문의를 드리게 되었습니다! 메일 문의 한 번만 확인 부탁드립니다. 감사합니다!
RNN Decoder의 경우, time step 별로 해당 input 단어에 대한 vocab 사전의 확률분포가 나오면, argmax 하거나, beam searching 하여 output을 최종 산출한다는 것으로 이해했었습니다. 강의에서 트랜스포머 Decoder의 경우도 개념은 똑같다고 하셨는데, 트랜스포머도 time step 이 있는건가요? 예를들어, 'I love you' 를 '난 널 사랑해' 로 번역할 때, decoder에 attention계산과정 및 Feed Forward 계산과정을 거쳐 나온 최종 attetion vector (seq_len x d model 차원) 가 첫번째 단어 '난' 부터 시작해서 greedy 하게, 혹은 beam search 전략 통하여 확률분포를 구한다고 보면 될까요?
Encoder의 Output은 attention vector (seq_len x d model) 하나가 나오는데, Decoder의 인풋으로 들어갈 땐 이를 encoder에서 배웠던 Q, K, V 로 나눈뒤, 이중에서 K, V 가 Decoder의 Encoder-Decoder attention layer에서의 K, V로 사용된다고 보면 될까요?
이런 식으로 코드를 사용중입니다 from PyQt6.QtWidgets import * from PyQt6.QtCore import * class thread (Qthread): def __init__(self): super().__init__() def run(self): while True: mainbot_window.fun1() class UI (QWidget): def __init__(self): super().__init__() self.inits() self.T1 = thread() self.T1.start() def inits(self): print("각종 변수 설정") def fun1(self): print("run code") def main(args=None): global mainbot_window app = QApplication(sys.argv) mainbot_window = UI() mainbot_window.show() try: app.exec() except KeyboardInterrupt: pass if __name__ == '__main__': main() 여기서 global 변수를 사용하지 않고 싶습니다. 글로벌 변수를 사용하지 않고 Thread 에서 Qwidget 의 함수를 사용할 방법이 있을까요? 시도한것 thread 에서 pyqtsignal.emit 을 사용해서 시도해봤는데 ui가 검은 화면으로 뜬체 작동하지않습니다. Qthread 대신 Qtimer 를 사용 =>작동은 잘되나 ui를 표시하는데 약간의 딜레이가 생깁니다. 그래서 되도록이면 Thread를 사용하고싶습니다.
안녕하세요 3강 콘다 가상환경에서 비주얼 스튜디오 터미널에서 conda activate myST해도 터미널에 계속 PS로 표시되며 가상환경으로 들어가지 않습니다. cmd에서는 같은 명령어를 입력하면 들어가지는데 비주얼 스튜디오 터미널에서는 들어가지지 않는 것 같습니다. 뭐가 문제일까요?
다시 한 번 좋은 강의 너무 감사합니다 :) 회사에서 NLP로 업무가 바뀌며 열공하느라 질문이 많네요..^^; 030_IMDB_movie_reviews.ipynb 의 아래 코드에서 model = Sequential([ Embedding(vocab_size+1, 64), Bidirectional(tf.keras.layers.LSTM(64)), Dense(64, activation='relu'), Dense(1, activation='sigmoid') ]) embedding의 차원 64와 LSTM hidden size 64와 Dense의 64는 항상 같아야 되는게 맞나요? tf.keras.layers.LSTM(64)) 위 코드를 해석해보면, LSTM의 input에 대한 weight 개수가 64개 인데 Dense(64, activation='relu'), 그 weight들을 fully connected 뉴런들로 덧붙여주겠다는 뜻으로 해석하면 될까요?
안녕하세요, 강의에서 사용하시는 구글 코랩에서 sklearn 모듈의 버전을 확인하고 싶은데요, 보통 사용하는 sklearn.__version__ 이나 import 한 모듈 이것저것 시도해봐도 전부 AttributeError: type object 'CountVectorizer' has no attribute '__version__' 나 NameError: name 'sklearn' is not defined 라는 오류가 뜹니다 (pd.__version__은 잘 작동) sklearn 버전은 어떻게 확인해야 하나요? 그리고 왜 sklearn은 정의되지 않았다는 오류가 뜨는건가요?
예를들어 skip-gram(window size 2) 에서 I love king of Korea 이라는 문장을 워드임베딩 하게 되면, 'king', 'I love', 'of Korea' 5개의 단어 중 3차원(I love, king, of Korea) 의 벡터(ex. <0.3, 0.5, 0.1>) 가 되는건가요? 차원은 어떻게 결정하는 것이고, 워드 임베딩 학습은 어떤식으로 진행되는지 예시를 설명해주실 수 있을까요? 미리 감사합니다!
안녕하세요. Beam-search 전략에서 joint probability를 만드는 문제 질문 드립니다. 학습하면서 joint 확률분포를 여러 경우의 수에 대해 미리 모두 만들어놓는 개념이라고 보면 되나요? 예를들어, "I love you so much" 를 "난 널 매우 사랑해" 로 번역할 때 I가 나왔을 때, '그는 매우' 나 '철수는 사과를' 이 나올 확률보다는 '난 널' 이라고 나올 확률이 제일 높도록 학습하는 개념인가요? 좋은 강의 감사합니다.