묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
선생님 안녕하세ㅛ
선생님 https://github.com/open-mmlab/mmdetection/issues/8834위와 같은 증상인것 같은데MMsegmentation 할때 ballon 데이터 학습시키는데 자꾸 멈추는것 같습니다.. 이부분이 더 고민인게 멈추는 것인지 학습을 하는 것이지 의문입니다 그래서 epoch 1로 해봤는데도.. 안되는 것 같아요..왜그런걸까요.. ㅠㅠ..
-
미해결리눅스 커맨드라인 툴 (Full ver.)
강사님한테 배운것들 맥 os 에서도 쓰임새있나요?
맥이랑 리눅스둘다 유닉스 계열이잔아요.로드맵 강의 따라가고 있는데요.맥os 에서 가르쳐 주신 명령어나 다른 내용들 공통분모인 부분이 있나요??.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
custom.js 오류문제
처음에는 강의듣고 코드 쓰는데에 불편함이 없어서 사용했는데 계속 오류창이 뜨고 가끔 안되는 상황도 있어서 질문드립니다.
-
미해결홍정모의 따라하며 배우는 C언어
static 변수를 동적할당하면 free 해줘야 하나요?
static 변수는 프로그램 종료시에 할당해제 되므로 따라 free를 안해줘도 상관없지만 malloc 과 같이 메모리를 할당하여 사용하면 메모리 누수 방지를 위해 free를 해줘야 하는걸로 알고 있습니다. 여기서 궁금한 점이 static 변수를 동적할당하면 그건 free 를 해줘야 하나요??
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
linux 관련 문의
안녕하세요! 1강이 아닌 바로 2강을 결제해서 vitis와 Vivado를 설치하여 강의를 듣고있는데 1강을 참고하여 따로 Linux 환경에서 Vitis를 다시 깔아야할까요? 아니면 그대로 진행해도될까요? 감사합니다
-
미해결
강의 리스트 좋아요 기능
나중에 또 보고싶은 강의를 저장해놓고 싶어서 강의 내 커리큘럼 리스트 안에도 좋아요 기능이 있으면 좋을것같습니다!
-
해결됨유니티 머신러닝 에이전트 완전정복 (기초편)
A2C 알고리즘을 드론 환경에 적용하려면
안녕하세요, 드론 환경에서 A2C 알고리즘을 적용해서 실험해보려고 합니다.환경에 맞게 적용을 하기 위해 state_size, action_size를 각각 9와 3으로 설정하고, 이 외에도 여러 부분을 수정하여 돌려 보려고 했는데 잘 안 되네요.get_action() 함수를 손보거나, preprocess를 하는 부분을 수정해주어야 할 것 같은데, 어떻게 해결해야 할지 잘 모르겠습니다.현재 상태에서는 다음과 같은 오류가 발생하고 있습니다.A2C.py의 코드는 아래와 같습니다.import numpy as np import datetime import platform import torch import torch.nn.functional as F from torch.utils.tensorboard import SummaryWriter from collections import deque from mlagents_envs.environment import UnityEnvironment, ActionTuple from mlagents_envs.side_channel.engine_configuration_channel\ import EngineConfigurationChannel # A2C를 위한 파라미터 값 세팅 state_size = 9 action_size = 3 load_model = False train_mode = True discount_factor = 0.9 learning_rate = 0.00025 run_step = 100000 if train_mode else 0 test_step = 10000 print_interval = 10 save_interval = 100 # VISUAL_OBS = 0 # GOAL_OBS = 1 # VECTOR_OBS = 2 # OBS = VECTOR_OBS # 유니티 환경 경로 game = "Drone" os_name = platform.system() if os_name == 'Windows': env_name = f"C:/Users/user/anaconda3/envs/mlagents/Drone_0427/Drone_1002_3.exe" elif os_name == 'Darwin': env_name = f"../envs/{game}_{os_name}" # 모델 저장 및 불러오기 경로 date_time = datetime.datetime.now().strftime("%Y%m%d%H%M%S") save_path = f"./saved_models/{game}/A2C/{date_time}" load_path = f"./saved_models/{game}/A2C/20210709235643" # 연산 장치 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") print("CUDA is available" if torch.cuda.is_available() else "CPU is available") # A2C 클래스 -> Actor Network / Critic Network 정의 class A2C(torch.nn.Module): def __init__(self, **kwargs): super(A2C, self).__init__(**kwargs) self.d1 = torch.nn.Linear(state_size, 128) self.d2 = torch.nn.Linear(128, 128) self.pi = torch.nn.Linear(128, action_size) self.v = torch.nn.Linear(128, 1) def forward(self, x): x = F.relu(self.d1(x)) x = F.relu(self.d2(x)) return F.softmax(self.pi(x), dim=1), self.v(x) # A2CAgent 클래스 -> A2C 알고리즘을 위한 다양한 함수 정의 class A2CAgent(): def __init__(self): self.a2c = A2C().to(device) self.optimizer = torch.optim.Adam(self.a2c.parameters(), lr=learning_rate) self.writer = SummaryWriter(save_path) if load_model == True: print(f"... Load Model from {load_path}/ckpt ...") checkpoint = torch.load(load_path+'/ckpt', map_location=device) self.a2c.load_state_dict(checkpoint["network"]) self.optimizer.load_state_dict(checkpoint["optimizer"]) # 정책을 통해 행동 결정 def get_action(self, state, training=True): # 네트워크 모드 설정 self.a2c.train(training) #네트워크 연산에 따라 행동 결정 pi, _ = self.a2c(torch.FloatTensor(state).to(device)) action = torch.multinomial(pi, num_samples=1).cpu().numpy() return action def train_model(self, state, action, reward, next_state, done): state, action, reward, next_state, done = map(lambda x: torch.FloatTensor(x).to(device), [state, action, reward, next_state, done]) pi, value = self.a2c(state) # Value network with torch.no_grad(): _, next_value = self.a2c(next_state) target_value = reward + (1-done) * discount_factor * next_value critic_loss = F.mse_loss(target_value, value) #Policy network eye = torch.eye(action_size).to(device) one_hot_action = eye[action.view(-1).long()] advantage = (target_value - value).detach() actor_loss = -(torch.log((one_hot_action * pi).sum(1))*advantage).mean() total_loss = critic_loss + actor_loss self.optimizer.zero_grad() total_loss.backward() self.optimizer.step() return actor_loss.item(), critic_loss.item() # 네트워크 모델 저장 def save_model(self): print(f"... Save Model to {save_path}/ckpt ...") torch.save({ "network" : self.a2c.state_dict(), "optimizer" : self.optimizer.state_dict(), }, save_path+'/ckpt') # 학습 기록 def write_summray(self, score, actor_loss, critic_loss, step): self.writer.add_scalar("run/score", score, step) self.writer.add_scalar("model/actor_loss", actor_loss, step) self.writer.add_scalar("model/critic_loss", critic_loss, step) # Main 함수 -> 전체적으로 A2C 알고리즘을 진행 if __name__ == '__main__': # 유니티 환경 경로 설정 (file_name) engine_configuration_channel = EngineConfigurationChannel() env = UnityEnvironment(file_name=env_name, side_channels=[engine_configuration_channel]) env.reset() # 유니티 브레인 설정 behavior_name = list(env.behavior_specs.keys())[0] spec = env.behavior_specs[behavior_name] engine_configuration_channel.set_configuration_parameters(time_scale=12.0) dec, term = env.get_steps(behavior_name) # A2C 클래스를 agent로 정의 agent = A2CAgent() actor_losses, critic_losses, scores, episode, score = [], [], [], 0, 0 for step in range(run_step + test_step): if step == run_step: if train_mode: agent.save_model() print("TEST START") train_mode = False engine_configuration_channel.set_configuration_parameters(time_scale=1.0) #preprocess = lambda obs, goal: np.concatenate((obs*goal[0][0], obs*goal[0][1]), axis=-1) #state = preprocess(dec.obs[OBS]) #state = preprocess(dec.obs[OBS],dec.obs[GOAL_OBS]) state = dec.obs[0] action = agent.get_action(state, train_mode) action_tuple = ActionTuple() action_tuple.add_continuous(action) env.set_actions(behavior_name, action_tuple) env.step() dec, term = env.get_steps(behavior_name) done = len(term.agent_id) > 0 reward = term.reward if done else dec.reward next_state = term.obs[0] if done else dec.obs[0] score += reward[0] if train_mode: agent.append_sample(state[0], action[0], reward, next_state[0], [done]) # 학습 수행 actor_loss, critic_loss = agent.train_model() actor_losses.append(actor_loss) critic_losses.append(critic_loss) if done: episode += 1 scores.append(score) score = 0 # 게임 진행 상황 출력 및 텐서 보드에 보상과 손실함수 값 기록 if episode % print_interval == 0: mean_score = np.mean(scores) mean_actor_loss = np.mean(actor_losses) mean_critic_loss = np.mean(critic_losses) agent.write_summray(mean_score, mean_actor_loss, mean_critic_loss, step) actor_losses, critic_losses, scores = [], [], [] print(f"{episode} Episode / Step: {step} / Score: {mean_score:.2f} / " +\ f"Actor loss: {mean_actor_loss:.2f} / Critic loss: {mean_critic_loss:.4f}") # 네트워크 모델 저장 if train_mode and episode % save_interval == 0: agent.save_model() env.close()답변 주시면 감사하겠습니다!
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - NFT
ERC-721을 위한 baobab 사이트에 계정만들기부터 안되요.
baobab 사이트에서 KLAY Faucet 화면에서 로그인 하시는데요. 현재 사이트에 들어가보면 탭(Using Keystore File)이 안보입니다. 오히려 그 위에 메뉴 Send KLAY & Token에 들어가니 비슷한 화면이 보이는데.. 이 화면을 이용해도 될까요?
-
해결됨대세는 쿠버네티스 (초급~중급편)
Statefulset PersistentVolumeClaim 생성
안녕하세요 또 여쭤볼 게 있어서 문의 드립니다.퍼시스턴트볼륨클레임을 예제와 같이 동일하게 생성하였는데생성된 퍼시스턴트볼륨클레임에는 용량도 없고퍼시스턴트 볼륨도 생성되지 않았습니다.혹시 어떤 부분을 확인해봐야 할까요?
-
미해결홍정모의 따라하며 배우는 C언어
vscode로 수업 들어도 괜찮을까요??
노트북이 m1맥북 하나여서 vscode로 수업 듣고있는데요.앞으로 쭉 수업 들으려면 윈도우에서 vs로 수업 듣는게 나을까요?vscode로 따라하면서 수업듣는데 무리 없을까요??회사에서 남는시간에 듣고있는데 노트북이 맥북밖에없네요ㅠㅠ프로그래밍은 이 강의로 처음 입문중인 쌩초보입니다!
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Network error: Connection refused
- 강의 내용외의 개인 질문은 받지 않아요. (개인 과제, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..)- 저 포함, 다른 수강생 분들이 함께보는 공간입니다. 보기좋게 남겨주시면 좋은 QnA 문화가 될 것 같아요. (글쓰기는 현업에서 중요한 능력입니다!)- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.mobaxterm 설치후 우분투 실행하는데 다음과 같이 뜨면서 실행되지 않습니다.
-
미해결스프링 핵심 원리 - 기본편
@autowired, @bean
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. DI 관련해서 질문이 있어 여쭤봅니다. Lombok을 추가해서 중복된 코드를 제거하는 부분까지 봤는데 궁금한 점이 아직도 풀리지 않아 질문드립니다. 스프링 데이터 JPA를 사용해서 프로젝트를 하는데 repo에는 extends JPArepository<entity, pk>를 추가하였고 domain에는 @Entity, @Getter, @Setter,@NoArgsContrustor를, service에는 @Service, @RequiredArgsContructor를, controller에는 @RestController, @RequiredArgsController를, repository에는 아무런 annotation을 심어놓지 않았습니다. 강의를 들어봤을 때 스피링 JPA에서는 DI를 하려면 a) config를 만들고 @Bean을 따로 등록하거나, b) 이 방법을 사용하지 않으려면 @component, @autowired를 같이 쓰는 방법이 있다는 것으로 이해를 했습니다. 하지만 저는 repository에는 @repository라는 annotation을 붙이지 않았으며, 따로 bean을 등록하지 않고 도메인, 서비스, 컨트롤러에 @component annotation만 넣고 @autowired는 사용하지 않았습니다. 그런데 원하는 결과값이 나와 어느 부분에서 DI가 실현된건지 궁금합니다.
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Spring Cloud OpenFeign (2) 7:05초에서 미들타임 에러가 무슨뜻인가요?
미들타임 에러가 무슨뜻인가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
H2 DB 접근 거부 에러
수업 들으며 h2 db 잘 사용하고 있었는데요...오늘 접속하려고 보니 해당 에러가 발생하며 H2 콘솔 접근이 안됩니다 ㅠㅠJDBC URL 을 jdbc:h2:~/test 로 지정하면 정상 접근 되는 상황입니다.db 파일도 제대로 있고,db 파일 삭제 후 다시 파일 만들어 시도해도 동일한 현상입니다. 어떻게 조치해야 할까요? ㅠㅠ
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Spring Cloud OpenFeign (2) 관련해 선택 사항 질문
구파고 선생님 https://techhelpnotes.com/spring-boot-springboot-feignclient-vs-webclient/또 다른 선택 사항으로 sebclient 가 있는데 feign vs webcliet 에서 네이버 광고 api 연동으로 뭔가 대쉬보드 같은걸 만들고 싶다 그러면 어떤게 좋나요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
아이콘 안보이는 문제
삭제버튼 쓰레기통 아이콘이 안보이고, +도 아이콘이 아니라 <>+<> 이렇게 된거입니다.index.html 에 <link> 이부분은 깃허브에서 코드 그대로 복사 해 왔습니다. 어떻게 해야 할까요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Assertions
김영한 강사님의 수업 pdf파일로 공부하던 중에 궁금한게 생겼습니다. assertj의 assertions와 jupiter의 assertions를 번갈아 가면서 쓰시던데 단지 기능에 따라서 쓰시는 건가요?
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Spring Cloud OpenFeign (2) 5분 39초 질문
디버깅을 65번째 줄에 찍고 디버깅 모드로 실행한뒤요청 날리면 이게 맞나요?
-
미해결취미로 해킹#3(WebGoat)
tmp 폴더는 임의로 생성하신 걸까요
윈도우 10 기준 명령어는 ./ 을 붙여야 실행이되고제가 임의로 tmp폴더를 만들어서 영상대로 파일을 집어넣고 터미널에서 열었는데 이렇게 뜨네요 ㅠ
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!
강의 완강하고 선생님께서 주신 추가 문제들 풀어보고 있습니다... https://www.acmicpc.net/problem/25802580 스토쿠 문제같은 경우에 강의에서 배워왔던 dfs와 형태가 달라서 고생중입니다 #include <iostream> #include <vector> #include <map> using namespace std; int arr[82][82]; vector<pair<int, int> > v; //0위치 bool isRight(int n) { //조건 확인*** .... (생략) } void dfs(int n) { if (n==(int)v.size()) { //결과 출력 ....(생략) exit(0); return; } else { //선택 for (int i = 1; i <= 9; i++) { arr[v[n].first][v[n].second] = i; //값 넣기 if (isRight(n)) { //백트래킹 조건 확인*** dfs(n + 1); //계속 진행 } //else { //취소***?????? // arr[v[n].first][v[n].second] = 0; //} } arr[v[n].first][v[n].second] = 0; } } int main() { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) { int tmp; cin >> tmp; if (tmp == 0) v.push_back(make_pair(i,j)); arr[i][j] = tmp; } } dfs(0); return 0; } 제 코드가 이러한데 (필요없는 부분은 생략했습니다)dfs 재귀함수의 경우v 벡터에 0인 곳의 좌표를 받고, dfs로 해당 좌표에 1부터 9까지 넣어보면서 선택하는 구조입니다.근데...재귀 전개하는 부분에서arr[v[n].first][v[n].second] = 0; 주석에서도 나와있듯이 초기화 하는 부분이 for문 밖으로 빠져나와 있어야 정답으로 인정이 되더라구요 이해가 가지 않아서 질문을 드립니다제 머리로는 위 부분이 for문 안쪽에 있는 것이랑for문 바깥쪽에 있는것이랑 무슨 차이가 있는 것인지 전혀 모르겠습니다. 문제를 찾아낸 반례도 첨부합니다 for문 안쪽에 arr[v[n].first][v[n].second] = 0; 가 있을 시이 케이스에서 0을 숫자로 하나도 채우지 못하고 그대로 결과가 나옵니다for문 안쪽에 아래 구문이 있는 경우arr[v[n].first][v[n].second] = 0;왜 못 채우고 다 0으로 빠져나오는 건가요?TEST CASE # 2 0 2 0 9 0 5 0 0 0 5 9 0 0 3 0 2 0 0 7 0 0 6 0 2 0 0 5 0 0 9 3 5 0 4 6 0 0 5 4 0 0 0 7 8 0 0 8 3 0 2 7 5 0 0 8 0 0 2 0 9 0 0 4 0 0 5 0 4 0 0 2 6 0 0 0 5 0 3 0 7 0