올려주신 코드에서 ManyToMany 관계를 맺기 전에 pk(즉, id) 값이 필요하기 때문에 bulk_create를 수행하고 tag_set.add 매서드를 호출한다고 강의에서 설명해주셨습니다. def create_posts(orig_post_list): """포스팅 생성""" category_dict = {category.name: category for category in Category.objects.all()} tag_dict = {tag.name: tag for tag in Tag.objects.all()} user_list = list(User.objects.all()) post_list = [] for orig_post in orig_post_list: post = Post( category=category_dict[orig_post["category_name"]], author=choice(user_list), title=orig_post["title"], status=choice([Post.Status.DRAFT, Post.Status.PUBLISHED]), content=orig_post["content"], ) post._tag_list = orig_post["tag_list"] post.slugify() post_list.append(post) if post_list: print(f"{len(post_list)} 개의 포스팅 생성") Post.objects.bulk_create(post_list, batch_size=1000) for post in post_list: _tag_list = [tag_dict[tag_name] for tag_name in post._tag_list] post.tag_set.add(*_tag_list) 그러나 해당 코드를 실행 시 여전히 tag_set.add를 위해서는 id가 필요하다고 에러가 발생합니다. 사용 중인 DB는 mysql 이며, 일단 임시 변통으로 bulk_create 전에 id를 직접 할당하여 해결하였습니다. for idx, orig_post in enumerate(orig_post_list): post.id = idx + 1 # id는 0이 될 수 없음 그러나 이는 --clear argument를 주었기 때문에 가능한 행위였습니다. 수정하기 위해서 하기와 같은 방법이 적절할까요? 그리고 왜 제 경우만 에러가 발생하는 걸까요? if post_list: print(f"{len(post_list)} 개의 포스팅 생성") Post.objects.bulk_create(post_list, batch_size=1000) tag_lists = [t for t in orig_post["tag_list"]] post_list = Post.objects.all() # id 로드를 위함 for post, tag_list in zip(post_list, tag_lists): _tag_list = [tag_dict[tag_name] for tag_name in tag_list] post.tag_set.add(*_tag_list)
model 폴더에서 PostImage는 interface를 사용하시고 Post컴포넌트에서는 type을 사용하셨는데 두 개를 다르게 사용하는 강사님만의 기준이 있나요 ? 제가 공부한 바로는 간단한 객체 타입일 경우 둘다 사용해도 상관없다. type은 복잡한 유니언 타입을 지정할때 사용한다 interface는 확장이 필요할 경우 사용한다고
안녕하세요 강사님, 강의 잘 보고 있습니다. 다름이 아니라, pretrained model에서 강의에서와 같이 (1) model의 feature extraction 부분에서 Conv2d의 kernel_size를 줄이고 (2) model의 fully connected layer에서 출력 크기를 10으로 줄인 부분에서 의문이 있어서 글을 남기게 되었습니다. (2)의 경우는 사실 fully connected layer가 복잡한 구조..?를 가지지는 않는다고 생각하여 다시 학습하는 데 별로 문제가 없다고 생각합니다. 하지만, (1)의 경우, 모델의 초반에서 아예 kernel size를 변경했고, 모델 프리징 강의에서 언급하신 바와 같이 그렇게 바꾸게 되면 임의의 랜덤 값으로 가중치가 초기화된다고 말씀하셨는데..! 그렇다면 Imagenet 모델로 사전 학습한 것이 의미가 있는건지 살짝 의문이 듭니다ㅠㅠ 사전 학습 모델의 목적이 그대로 웨이트를 사용한다는 것보다 모델의 구조를 가져온다는 것이라면 납득이 되지만, 사전 학습에서의 가중치가 transfer learning 될 때 어떻게 사용되고 변하는지를 잘 몰라서 이런 궁금증이 생긴 것 같습니다.. 항상 좋은 강의 감사합니다!!
질문을 온전히 이해할 수 있도록, 모든 맥락을 전달해주세요. 질문은 질문자가 번거로워야 보다 좋은 답변을 얻으실 수 있습니다. 시행착오를 알려주시면 곧바로 원하는 문제에 집중할 수 있습니다. 오류 메시지는 일부만 알려주시기보다 전체 오류 메시지를 캡처해서 주시면, 오류 파악에 도움이 됩니다. 당신의 파이썬/장고 페이스메이커가 되겠습니다. ;-) 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI load_dotenv() OPENAI_API_KEY = os.environ["OPENAI_API_KEY"] llm = ChatOpenAI(model="gpt-3.5-turbo-0125", openai_api_key=OPENAI_API_KEY) #chain 실행 llm.invoke("지구의 자전 주기는?") 저는 VSCode로 강의를 따라하고 있었습니다. Failed to batch ingest runs: LangSmithError('Failed to POST https://api.smith.langchain.com/runs/batch in LangSmith API. HTTPError(\'403 Client Error: Forbidden for url: https://api.smith.langchain.com/runs/batch\ ', \'{"detail":"Forbidden"}\')') 이 오류가 뜨면서 실행이 안되는 이유를 모르겠습니다. 현재 상황은 이렇습니다. OPENAI_API_KEY는 정확합니다. 혹시나 해서 openai 튜토리얼을 따라해보니, 유효한 api key라는것을 확인할 수 있었습니다. llm.invoke("지구의 자전 주기는?") 구문을 실행시키면 해당 오류가 뜹니다. 전체 패키지를 재설치해도 결과는 같았습니다.
안녕하세요, 좋은 강의 만들어주셔서 감사합니다. '조합 알고리즘' 부분 진도 나가고 있는데, 다음과 같이 시도했더니 오답이 떴습니다. 아예 처음부터 L개의 원소를 뽑아 조합을 만든 다음, 모음과 자음의 갯수가 미달되면 해당 조합은 지우는 방식으로 시도해봤는데, (for문이 세개나 나와서 좀 조잡한 풀이 같아 보이긴 하지만..ㅠㅠ) 이 풀이가 틀리게 되는 이유를 혼자 힘으론 찾기가 어려워서 도움을 구해봅니다...! from itertools import combinations L, C = input().split() chars = list(input().split()) mo = ['a', 'e', 'i', 'o', 'u'] candidates = list(combinations(chars, int(L))) for can in candidates: mo_num, ja_num = 0, 0 for i in can: if i in mo: mo_num += 1 else: ja_num += 1 if mo_num < 1 or ja_num < 2: candidates.remove(can) sol = [] for ans in candidates: ans_str = '' for i in sorted(ans): ans_str += i sol.append(ans_str) for i in sorted(sol): print(i)
안녕하세요. 좋은 강의 잘 듣고 있습니다. 감사합니다. 이번에 실무에 적용해보려고 이 강의를 수강하였는데요, 제가 하고 싶은 자동화는 한글파일로 된 신청서의 표에 적힌 정보를 가져와서 다른 한글파일의 표에 넣는 것입니다. 강의를 듣던 중 한글 파일의 표를 생성하고 쓰는 것은 알게 되었는데 한글 파일에 작성된 표에서 정보를 가져오는 방법은 알지 못해 질문드립니다. 감사합니다.
강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다. 문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다. 코드를 이미지로 올려주시면 실행이 불가능하기 때문에 답변이 어렵습니다. 답변은 바로 제공되지 않을 수 있습니다. 실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다. 최대한 구글링을 동원해서 해보는 중인데 막히네요. 모니터링 가서 로그 나오는것 까지 확인 했습니다. event, message, text 이렇게 표시 되는거요. def lambda_handler(event, context): result = json.loads(event["body"]) print(f"event : {event}") keyword = result["message"]["text"] news_crawler(keyword) 그다음 위의 코드 작성하고 run을 해보면 아래와 같이 body 키 문제가 있다고 나옵니다. 무슨문제일까요...ㅜ "errorMessage": "'body'", "errorType": "KeyError", "requestId": "628cac7e-f4ae-41f3-9ba3-ba7a3e7f464f", "stackTrace": [ " File \"/var/task/lambda_ function.py \", line 59, in lambda_handler\n result = json.loads(event['body'])\n"
안녕하세요. 강사님 mac os로 이론 pdf보고있는데 뒷쪽 페이지 sql과 조인 정리 부터 글자가 안나옵니다. 윈도우에서 해보니 브라우저 pdf로는 잘나오는데 pdf프로그램으로도 안나오네요. 인코딩 문제이면 맥에서도 볼수있게 pdf재업로드 가능하실까요? 확인 부탁드리겠습니다.
위와 같이 작성하여 요청하였을 때 이러한 에러가 나타납니다 무엇이 문제일까요? 검색해보니 전에도 질문이 올라왔는데 답변이 안달려있네요 _id 값은 받아와지는데 name과 email 등 다른 정보 요청하면 위와 같은 오류가 나타납니다 AI 답변 말고 강사님 답변 듣고싶습니다
선생님 안녕하세요 좋은 강의 감사드립니다. 모듈12의 4번째 강의, hightlight ~ 에서 10:42 부분부터 질문이 있습니다. 선생님과 똑같이 docker run -d -p 8787:8787 -v "/home/dataengineer/rproject:/home/rstudio" --name kaggle-rstudio-container gcr.io/kaggle-gpu-images/rstats:v58 명령어를 쳤는데, 컨테이너가 만들어졌다가 바로 사라집니다. 이건 왜 그런거죠? docker ps -a 로 컨테이너 상태를 확인해보면 , 포트가 안열려 있습니다. 전 분명히 8787 로 열여서 연결했는데 말이죠 ㅠ 혹시 왜 포트 8787이 안열리는지 설명이 가능하실까요 저는 선생님이 11:30 에서 사용한 방식으로 rstudio 에 접속하는 것이 아니라, 웹브라우저에 ip주소:8787 을 입력해서 들어가려고 하거든요. 만약에 2번 문제가 해결되고, azure 네트워크 설정 들어가서 인바운드 규칙에 8787 포트를 추가해준다면, 정상적으로 rstudio가 열려야 하는게 맞죠?