올려주신 코드에서 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"
안녕하세요 공부하다가 몇가지 궁금한게 생겨 여쭤봅니다. 질문1) D3D12_DESCRIPTOR_RANGE ranges[2] = { { D3D12_DESCRIPTOR_RANGE_TYPE_CBV, 5, 0, 0, D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND }, // b0 ~ b4 { D3D12_DESCRIPTOR_RANGE_TYPE_SRV, 5, 0, 0, D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND } // t0 ~ t4 }; CD3DX12_ROOT_PARAMETER rootParameters[1] = {}; rootParameters[0].InitAsDescriptorTable(_countof(ranges), ranges, D3D12_SHADER_VISIBILITY_ALL); 와 같이 루트시그니처에서 테이블의 사용범위를 넓게잡아두고 사용할때만 Shader 에서 buffer를 정의 ( ex :cbuffer WVP: register(b0 )해서 사용해주고있는데 테이블힙의 메모리 낭비를 제외하면 성능에 큰 악영향이 있을까요? 런타임에 터지거나 하는 오류는 현재 없는데 궁금해서 여쭤봅니다. 질문2) 제가 이해한게 맞는건지 모르겠습니다. 현재 영천님 의 코드처럼 pool 방식으로 디스크럽터를 넓게만들어두고 할당받는 방식으로 코드를 만들어보고있는데 질문1의 방식처럼 rootSignature 를 만들었다고 하였을때 , SetGraphicsRootDescriptorTable 함수인자에 핸들값을 넣을때 그림에 빨간 화살표에 있는 선두에 있는 handle 값만 넣어주면 RootSignature 에서는 b0~b5 ,t0~t5 의 총10개를 사용한다고 서명했기떄문에 , DX에서 읽을때 10개단위로 읽어주기 때문에 10개가 모두 테이블에 바인딩되는 구조인가요? 다음 오브젝트를 그릴때는 , 오프셋 10칸을 건너뛴 다음 b0 부터 할당받아서 테이블에 바인딩해주고
안녕하세요. 강사님 mac os로 이론 pdf보고있는데 뒷쪽 페이지 sql과 조인 정리 부터 글자가 안나옵니다. 윈도우에서 해보니 브라우저 pdf로는 잘나오는데 pdf프로그램으로도 안나오네요. 인코딩 문제이면 맥에서도 볼수있게 pdf재업로드 가능하실까요? 확인 부탁드리겠습니다.
위와 같이 작성하여 요청하였을 때 이러한 에러가 나타납니다 무엇이 문제일까요? 검색해보니 전에도 질문이 올라왔는데 답변이 안달려있네요 _id 값은 받아와지는데 name과 email 등 다른 정보 요청하면 위와 같은 오류가 나타납니다 AI 답변 말고 강사님 답변 듣고싶습니다