(전) 엔코아 컨설팅
(전) 한국 오라클
AI 프리랜서 컨설턴트
파이썬 머신러닝 완벽 가이드 저자
講義
受講レビュー
- FastAPI 完全ガイド
- データ分析 SQL Fundamentals
- 深層学習 CNN 完璧ガイド - Pytorch バージョン
投稿
Q&A
81강 한 건도 못찾았을 경우 질문
안녕하십니까, 날카로운 지적이십니다 ^^SQLAlchemy 버전에 따라 차이가 있을 수 있지만, 현 버전의 SQLAlchemy Connection Pool은 connection이 close()되어서 connection pool 로 돌아가면 자동으로 Cursor result를 닫아 줍니다. 따라서 오류가 발생해서 result의 close()를 수행할 수 없지만 connection close()가 finally에서 수행되므로 connection pool로 돌아가면서 자동으로 cursor result가 닫히게 됩니다. 그렇지만, 암묵적으로 connection close() 시에 이런 작업들이 수행되더라도, 명시적으로 cursor result를 닫아주는 것은 필수 입니다. 감사합니다.
- 0
- 2
- 21
Q&A
왜 train epoch에선 0.0 validate epoch에선 0?
안녕하십니까, 눈썰미가 좋으시군요 ^^큰 의미가 없습니다. 원래 0.0으로 다 통일하는게 맞는데, 0으로 초기에 설정한 부분이 있습니다. 결과는 0이나 0.0이나 최종 결과는 동일하게 소수점으로 나옵니다. 감사합니다.
- 0
- 1
- 16
Q&A
10. 조인 실습 - 02 관련 질문
안녕하십니까,이런 경우 수행하신 SQL을 차근 차근 결합해 보시는게 좋습니다.먼저 emp a 와 emp_dept_hist b 만 조인해서 a의 dept_no와 b의 dept_no를 보시면selecta.ename, a.empno, a.deptno as a_deptno, b.deptno as b_deptnofromhr.empajoinhr.emp_dept_histbona.empno = b.empnowherea.ename = 'SMITH';a의 dept_no는 직원의 현재 dept_no입니다. 그리고 b의 dept_no는 과거까지 포함된 dept_no 입니다.그런데 아래와 같이 emp의 a.dept_no와 dept의 c.deptno를 조인하게 되면 현재 부서의 dept에 대한 정보만 나오게 됩니다. 그러니까, b.fromdate, b.todate는 부서 변경이력이 나오지만, c.dname은 현재 부서명만 나오게 되므로 원하는 결과가 되지 않습니다.selecta.ename, a.empno, b.deptno, c.dname, b.fromdate, b.todatefromhr.empajoinhr.emp_dept_histbona.empno = b.empnojoinhr.deptcona.deptno = c.deptnowherea.ename = 'SMITH'; 그래서 제가 작성한 SQL과 같이 과거 이력의 emp_dept_hist의 deptno와 dept의 deptno를 조인해야 과거 dept에 대한 dname 정보를 가져 올 수 있습니다. 감사합니다.
- 0
- 1
- 17
Q&A
Attribute Error(Frame Work 3번째 강의)
안녕하십니까, 일단 원본 실습 코드를 그대로 사용하고 계신 건가요? 저는 해당 오류가 발생하지 않습니다. 그리고 오류 부분을 보면 optimizer = Adam(model.parameters(), lr=0.001)에서 아래와 같이 import가 되지 않고 중복으로 되어 있는 부분이 있는지 확인 부탁드립니다. from torch.optim import Adam 그런 부분이 없으시다면 다시 원본 실습 코드를 강의 자료에서 다운로드 받으셔서 재 수행 부탁드립니다. 감사합니다.
- 0
- 1
- 16
Q&A
이 다음강의
안녕하십니까, 강의 잘 듣고 계시다니 저도 기분이 좋습니다. 다음 강의는 Object Detection이 아닌 Transformer 강의로 준비하고 있습니다. 일정은 추석 전에 오픈하는 것을 목표로 하고 있습니다. 감사합니다.
- 0
- 1
- 28
Q&A
Frame Work의 근본에 대한 이해
안녕하십니까, 강의를 잘 듣고 계시다니, 저도 기분이 좋군요 ^^네 맞습니다. train_data에서[0][0]과 [0][1]은 이미지와 labes로 이미 페어가 되어 있습니다. 그리고 show_images함수에서 class_names도 원래 약속되어있던 이름을 사람이 인지하기 좋게 이름만 매칭시켜 주었습니다. label의 0 값이 T-shirt/top, 1값이 Trouser 와 같이 매칭 됩니다. 2-1. SimpleLinearModel_01 클래스가 초기화를 통해서 linear_01 -> 활성화 함수 -> linear_02 ->활성화 함수 -> linear_03 = output 으로 각 레이어를 지나가는 단계임은 인지가 되나, 왜 점차 features가 줄어드는가?=> feature의 갯수를 각 레이어 통과 시 마다 줄이지 않아도 됩니다. 근데 실습에 사용되는 모델의 경우에 일반적으로 레이어 통과 시 마다 out_features의 갯수를 줄입니다. 그렇지 않고 계속 out_features의 갯수를 늘리기 되면 학습 parameter의 수가 계속 늘어나게 됩니다. 그러니까 nn.Linear(in_features=200, out_features=100) 이라면 학습 weight parameter의 갯수는 200*100 이 됩니다. 만약에 out_features가 100이 아니라 1000 이라면 200 * 1000 이 되어서 불필요하게 커지며, 오히려 overfitting등의 문제가 생겨서 성능이 더 떨어질 수도 있습니다. 그리고 최종적으로 적용되는 nn.Linear 층의 out_features는 예측하려는 class의 갯수, 즉 예측 하려는 이미지 label 갯수인 10이 되어야 합니다. 왜냐하면 모델을 train 시킬 시, 실제 target label 갯수인 10과 동일하게 최종 출력이 10(batch_size, 10)이 되어야만 loss 함수에서 서로 값을 비교해서 loss값을 계산할 수 있기 때문입니다(즉 train loop에서 model의 출력값이 10가지로 나와야만 loss_fn(pred, labels)가 적용될 수 있습니다)2.2 무엇을 학습하면서 layer를 지나가는가?=> 이미지 데이터를 nn.Linear를 통과 시킬 때 마다 nn.Linear에서 가지는 학습 파라미터들은 이미지값의 패턴을 학습합니다. 하지만 공간적인 특성이 감안되지 않고 flatten 된 데이터로 이미지 값의 패턴을 학습하므로 학습 성능이 떨어지게 됩니다. 2.3 최초에는 28*28롤 784로 한 이미지의 pixel 갯수로 infeture로 받았으니 마지막에는 10개의 픽셀이 남는다는 것으로 이해되는데, 어떤 핵심(?) 또는 학습한 픽셀을 남기게 되는것인가? 가 궁금합니다.=> 마지막에 10개의 픽셀이 남는건 아니고, 10개의 예측 logits 값을 만들게 됩니다. 아마 질문의 핵심중에 하나가 딥러닝이 무엇을 학습하고, 어떠한 방식으로 학습이 진행될 수 있느냐 일것도 같습니다만, 딥러닝 모델은 사실 매우 유연합니다. 너무 유연해서 너무나 다른 여러가지 방법으로 모델을 만들 수 있습니다. 하지만 뼈대는 학습 파라미터를 가진 레이어들을 서로 연결해서 모델을 만드는 것이고 이미지 판별과 같은 classification 모델의 경우 최종적으로 예측을 하는 레이어를 모델에 붙여서 모델의 예측 출력값과, 학습 데이터가 가지는 target값을 Loss 함수로 비교 적용하여 Gradient 값을 만든 뒤 학습 파라미터를 갱신하는 방법으로 구성되어 있습니다. 여기서 학습 파라미터를 가진 레이어는 지금 강의에서 듣고 계시는 nn.Linear가 될 수도 있고, 뒤에 CNN 에서 설명드리는 nn.Conv2d가 될 수도 있습니다. 중요한 건 이러한 레이어(즉 학습파라미터를 가진 객체)들을 효과적으로 잘 연결하고, 적절한 Loss를 적용해서 잘 학습 시키면 (신기하게도) 딥러닝 모델이 일반 머신러닝에서 하기 힘든 이미지 판별등의 작업을 잘 수행할 수 있다는 것입니다. 3. 추가로 제가 이해가 부족하다고 판단되는 부분이나 추가학습 부분 추천해주시면 감사하겠습니다.=> 특별히 이해가 부족한 부분이 있다고 생각이 들지는 않는군요 ^^ 혹시나 잘 이해가 안되는 부분이 있으시면 언제든지 질문 주시고, 제가 앞에서 말씀드린 사항을 기억하시면서 이전 강의 내용들도 다시 한번 여유가 가지고 들어보시면 좋을 것 같습니다. 감사합니다.
- 0
- 1
- 24
Q&A
community edition 가입 문의
안녕하십니까.아직은 유지를 하고 있습니다만, 말씀하신대로 이제 community edition을 없애려는 움직임 같군요.해당 화면에서 Use Legacy Community Edition을 누르셔서 사용하시면 됩니다.내용 알려 주셔서 감사합니다. 제가 좀 더 확인해 보고 전체 공지 하도록 하겠습니다.감사합니다.
- 0
- 2
- 29
Q&A
mmcv 설치관련해서 문의드려요
안녕하십니까, https://download.openmmlab.com에 SSL 관련 접속 환경이 최근에 뭔가 변경 된 것 같습니다. 지금 접속 자체가 안되는군요. 해당 Community에서도 인지를 하고 있는 걸로 보이니, 조치가 되는지 1~2일 더 기다려 봐야 할 것 같습니다. https://github.com/open-mmlab/mmcv/issues/3302저도 계속 모니터링 하겠습니다. 감사합니다.
- 0
- 3
- 84
Q&A
64강: mysql-connector-python 버전 관련
안녕하십니까, 저도 테스트를 해보진 않았는데, SQL Alchemy 2.0과 신규 버전 MySQL Connector 9.4.0 간 호환성에 문제가 있는 것 같아 보이는군요. 아마 곧 SQL Alchemy에서 해당 버전 connector 와 호환 버전이 나오지 않을까 싶습니다. 강의 실습은 실습 영상에서 권장드린 MySQL Connector 버전으로 맞춰서 실습 부탁드립니다. 감사합니다.
- 0
- 2
- 39
Q&A
152번 강의에서 질문이있습니다.
안녕하십니까, 질문을 잘 이해하지 못했습니다. Depends에 서비스 계층의 get_all_blogs()를 넣어주는 코드가 해당 영상에 있나요? router의 blog.py의 get_all_blogs()의 Depends 내에는 get_session() 이 들어가 있습니다. 다시 한번 질문 내용을 확인 부탁드립니다.
- 0
- 2
- 18