173만명의 커뮤니티!! 함께 토론해봐요.
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
유니티 연동 #1 을 공부하는 도중 아래와 같은 오류가 떴습니다. 유니티 서버를 연동하는 부분이고 정상동작을 한다면 Hello Server I am 1 이 출력되어야 합니다. 소켓 부분에서 에러가 나서 OnConnectedCompleted 함수를 제대로 실행하시 못하는것 같습니다. 강의 파일을 받아서 실행해도 동일한 오류가 뜨고 아무리 구글링을 해봐도 해결을 못하겠어서 번거로우시겠지만 질문을 드립니다...
정우영
2022-10-10T06:40:30.287Z
댓글 1
좋아요 0
조회수 377
해결됨
유니티 머신러닝 에이전트 완전정복 (기초편)
안녕하세요, 드론 환경에서 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() 답변 주시면 감사하겠습니다!
unity-ml-agents 강화학습 머신러닝 배워볼래요? unity
윤원준
2022-10-07T09:21:34.747Z
댓글 1
좋아요 1
조회수 872
미해결
[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
안녕하세요. 강의 잘 수강하고 있습니다. 현재 mask rcnn-ballon 데이터셋 학습을 진행중입니다. 주석에서 train, val, test dataset 환경 파라미터가 있다고 나와있는데, train, validation 데이터 이외의 test 데이터셋은 어디에서 확인할 수 있는지 알 수 있을까요? 감사합니다.
tensorflow 딥러닝 keras 컴퓨터-비전 python 머신러닝 배워볼래요?
조영훈
2022-10-07T03:35:55.880Z
댓글 1
좋아요 0
조회수 249
해결됨
파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
test case 2 번의 경우 10 3 6 5 8 5 6 8 7 6 6 7 로 주어지는데 주어진 수의 리스트를 정렬하면 [5 5 6 6 6 6 7 7 8 8] 이 되고 이분 탐색 알고리즘에 의해 해를 구하면 최소 크기가 23일때 [5 5 6 6],[6 6 7],[7 8 8] 을 만족하므로 주어진 output인 24가 아닌 23이 정답이라고 생각했는데 어느 부분에서 잘못생각하였는지 궁금합니다.
taehyeong1998
2022-10-06T14:07:58.264Z
댓글 1
좋아요 0
조회수 233
해결됨
파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
h를 무조건 0~99로 설정하기보다는 미리 높이의 min 값과 max값을 구한 후 min~max 범위로 for 문을 돌려주면 더 효율적인 풀이가 될 것 같습니다. from collections import deque N = int(input()) graph = [list(map(int,input().split())) for _ in range(N)] min_rain = 99999999 max_rain = -1 # 높이의 min,max 구해주기 for row in graph: min_tmp = min(row) max_tmp = max(row) if min_tmp < min_rain: min_rain = min_tmp if max_tmp > max_rain: max_rain = max_tmp dr = [1,0,-1,0] dc = [0,1,0,-1] ans = 0 for rain in range(min_tmp+1,max_rain): visited = [[0 for _ in range(N)] for _ in range(N)] cnt = 0 for rr in range(N): for cc in range(N): if visited[rr][cc] == 0 and rain < graph[rr][cc] : visited[rr][cc] = 1 q = deque() q.append((rr,cc)) while q: r,c = q.popleft() for i in range(4): nr = r + dr[i] nc = c + dc[i] if 0 <= nr < N and 0 <= nc < N and visited[nr][nc] == 0 and rain < graph[nr][nc]: visited[nr][nc] = 1 q.append((nr,nc)) cnt += 1 if cnt > ans: ans = cnt print(ans)
taehyeong1998
2022-10-05T16:01:07.341Z
댓글 1
좋아요 0
조회수 314
해결됨
[개정판] 파이썬 머신러닝 완벽 가이드
안녕하세요! 멋진 강의를 들을 수 있어서 감사하고 있습니다. 잠재요인 기반의 협업필터링 이해와 경사하강법을 이용한 행렬 분해 18:12 에서 나오는 L2 규제에 대해 궁금한 점이 있어서 문의 드립니다. 수학에 약해서 공부해볼겸 수학적으로 해석을 하려는데, 다른 사이트의 참고 내용들을 보다보니 L2 규제에 시가마가 들어가던데 여기서는 안 들어가는 이유가 무엇인지 궁금합니다. 감사합니다!
행렬분해 통계 l2규제 python 추천시스템 머신러닝 배워볼래요?
cjh
2022-10-05T13:27:36.795Z
댓글 3
좋아요 0
조회수 470
해결됨
일잘하는 마케터, MD에게 꼭 필요한 파이썬 데이터 분석
안녕하세요 리뷰 크롤링 하는 과정에서 다른 페이지에 적용 학습해보다가 에러코드가 떠서 질문드립니다. name = ['언더아머 CGI 다운'] ns_address = 'https://search.shopping.naver.com/search/all?query=cgi%20%EB%8B%A4%EC%9A%B4&frm=NVSHATC&prevQuery=%EB%89%B4%EB%B0%9C%EB%9E%80%EC%8A%A4%EB%B0%94%EB%9E%8C%EB%A7%89%EC%9D%B4' shoppingmall_review = "/html/body/div/div/div[2]/div[2]/div[2]/div[3]/div[1]/ul/li[3]/a" category_total = "/html/body/div/div/div[2]/div[2]/div[2]/div[3]/div[7]/div[2]/div[2]/ul/li[1]/a" 순서대로 위와 같이 적용 완료하였는데요, 그 다음에 소스코드 주신 부분인 아래 부분을 적용하니까 다음과 같은 에러가 뜹니다. 확인 부탁드려도 될까요? header = {'User-Agent': ''} driver.implicitly_wait(3) driver.get(ns_address) req = requests.get(ns_address,verify=False) html = req.text soup = BeautifulSoup(html, "html.parser") sleep(2) element=driver.find_element_by_xpath(shoppingmall_review) driver.execute_script("arguments[0].click();", element) sleep(2)' 에러 - /usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning) --------------------------------------------------------------------------- NoSuchElementException Traceback (most recent call last) <ipython-input-30-8a5c5adbf17a> in <module> 6 soup = BeautifulSoup(html, "html.parser") 7 sleep(2) ----> 8 element=driver.find_element_by_xpath(shoppingmall_review) 9 driver.execute_script("arguments[0].click();", element) 10 sleep(2) 3 frames /usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py in find_element_by_xpath(self, xpath) 392 element = driver.find_element_by_xpath('//div/td[1]') 393 """ --> 394 return self.find_element(by=By.XPATH, value=xpath) 395 396 def find_elements_by_xpath(self, xpath): /usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py in find_element(self, by, value) 976 return self.execute(Command.FIND_ELEMENT, { 977 'using': by, --> 978 'value': value})['value'] 979 980 def find_elements(self, by=By.ID, value=None): /usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params) 319 response = self.command_executor.execute(driver_command, params) 320 if response: --> 321 self.error_handler.check_response(response) 322 response['value'] = self._unwrap_value( 323 response.get('value', None)) /usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response) 240 alert_text = value['alert'].get('text') 241 raise exception_class(message, screen, stacktrace, alert_text) --> 242 raise exception_class(message, screen, stacktrace) 243 244 def _value_or_default(self, obj, key, default): NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div/div/div[2]/div[2]/div[2]/div[3]/div[1]/ul/li[3]/a"} (Session info: headless chrome=105.0.5195.102) 그리고 다음 url과 같이 나타낼 페이지가 그리 많지 않은 경우에도 같은 소스코드 양식을 사용해도 될까요? https://search.shopping.naver.com/catalog/29274895216?query=cgi%20%EB%8B%A4%EC%9A%B4&NaPm=ct%3Dl8qn5dbs%7Cci%3Dcc97712ba6dec8be52ea670a2e607bb755d59f4f%7Ctr%3Dslsl%7Csn%3D95694%7Chk%3D97fd029ce7fc81750ad0a1d2110ad155b54fe09d 감사합니다.
GGGG
2022-10-02T02:20:41.317Z
댓글 1
좋아요 0
조회수 1065
해결됨
QGIS 파이썬 자동화 (벡터편) Ver.2
버퍼 강의 중 VWorld StateTile 레이어 추가를 어떻게 하나요???
backboss
2022-09-30T08:05:13.503Z
댓글 1
좋아요 2
조회수 476
미해결
[유니티6] 따라하면서 배우는 하이퍼캐주얼게임 시리즈 01
(2D환경을 기준으로 궁금한 점입니다....) 현재 2DPinCirlce, 2DWave까지 학습을 진행하던 중 2D 게임인데 오브젝트를 변경할 때 Transform의 Scale에서 Z까지 변경하고 있습니다. 만약 Z값을 변경하지 않고 0으로 두었을 때 대부분은 영향을 주지 않는 것 같았는데 혹시 Z값의 변경이 2D게임에서도 영향을 주는 경우가 있을까요? 1. 영향을 주지 않는다면 현재 설명하시고 있는 게임에서는 Scale의 Z값을 모두 0이라 두거나 어떤 값으로 두어도 상관이 없게 되나요? 2. 영향을 주는 경우가 있다면 어떤 경우가 있을까요? 구체적인 사례가 있을까요? 도움 부탁드립니다. 감사합니다 ^^
2022-09-30T03:38:48.934Z
댓글 1
좋아요 1
조회수 759
미해결
[개정판] 파이썬 머신러닝 완벽 가이드
24:04 코드에서 왜곡된 분포 정도를 낮추기 위해 log변환으로 스케일링을 하였는데 StandardScaler로 한번 더 변환을 하는것이 의미가 있는지 궁금합니다 이유가 무엇인가요?
예찬
2022-09-29T13:42:16.963Z
댓글 1
좋아요 1
조회수 571
미해결
[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
안녕하세요 이전에 드렸던 질문이긴 하지만, 새로운 강의(스킬 시스템)은 10월 경에 정확히 수강 할 수 있는지 알 수 있나요?
UniUni
2022-09-29T10:56:05.139Z
댓글 1
좋아요 0
조회수 344
미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
지금 3번째 들으면서 지나가는 수강생입니다 진짜 첫 번째 들을 때 두 번째 들을 때 세 번째 들을 때 이해되는 범위가 다릅니다 처음에는 그냥 코드 따라 치면서 완주만 해보세요. 두 번째는 코드의 흐름만 본다는 느낌으로 따라가고, 세 번째는 강의를 눈으로만 보고, 혼자 힘으로 코드를 완성해 보면 확실히 체득이 되는 느낌입니다! 다들 화이팅입니다! 저 같은 말하는 감자도 하는데 여러분도 할 수 있습니다! ps. 루키스님 강의 찍으시랴, 부트캠프 준비하시랴 많이 바쁘실텐데 항상 감사합니다!
장재범
2022-09-23T04:58:19.102Z
댓글 2
좋아요 16
조회수 731
미해결
[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
안녕하세요! YOLO v1의 이해 - 01에서 바운딩 박스가 셀마다 2개식 생성이 되는데 이때 셀마다 갖는 바운딩 박스의 크기나 모양 등이 동일한 것인가요? 아니면 랜덤하게 생성이 되는것인가요? 감사합니다~
컴퓨터-비전 tensorflow keras python 딥러닝 머신러닝 배워볼래요?
축구쟁이
2022-09-22T20:59:19.855Z
댓글 1
좋아요 0
조회수 379
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 선생님! 클라이언트에서 온 패킷이 자꾸 이렇게 띄엄띄엄 출력 되는데 왜 그런지 알 수 있을까요?
didgmldus001
2022-09-22T05:42:32.423Z
댓글 1
좋아요 0
조회수 423
미해결
[개정판] 파이썬 머신러닝 완벽 가이드
데이터 전처리 - 스케일링 - 01 강의 1분47초에서 표준화로 데이터의 피처 각각이 평균이 0 이고 분산이 1인 가우시안 정규분포로 바꿔준다고 했는데요. 원래 데이터가 정규분포를 가졌다면 xi_new (표준화 식)식 으로 평균이 0 이고 분산이 1인 정규분포를 도출할 수 있지만 애초에 정규분포를 이루지 않는 데이터의 경우 는 해당 식을 적용한다고 해서 정규분포가 되지 않을 텐데 이런 경우는 어떻게 해서 정규분포로 만든다는 것일까요? 답변 부탁드립니다. 감사합니다.
허쿡
2022-09-21T08:39:51.548Z
댓글 1
좋아요 0
조회수 294
미해결
[유니티 3D] 실전! 생존게임 만들기 - Advanced
강의를 보고 코드를 치다가 한두 곳 오류가 나왔는데 문제점을 도저히 못 찾겠습니다. 그래서 전체 프로젝트를 보면서 비교 분석해보고 싶은데 가능 할까요...?
강민훈
2022-09-20T06:17:07.089Z
댓글 1
좋아요 0
조회수 433
미해결
yolov5에서 labelimg를 사용하는데 labelimg로 라벨링 작업을 한 후, 새로운 이미지들이 생겨 이전에 라벨링 작업을 했던 이미지 폴더에 새로운 이미지들을 추가하여 라벨링 작업을 이어서 했더니, 전에 작업했던 라벨링들이 다 지워지는 현상이 발생했습니다. labelimg를 사용하여 전에 라벨링 작업했던 것과 새로 라벨링 작업한 것을 합쳐도 이런 현상이 발생하는데, labelimg에서 새로운 이미지를 추가하려면 모든 이미지들을 처음부터 라벨링 다시 해야 하나요? 아니면 해결방법이 있을까요?
욜로 yolov5 labelimg 라벨링 labeling 인공지능 파이썬 python 욜로v5
wnsgur0473
2022-09-19T08:57:46.550Z
댓글 0
좋아요 0
조회수 476
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
웹서버의 경우 실무에서 docker를 많이 사용하는 것 같은데요, 혹시 소켓 기반 실시간 게임서버개발에도 docker를 많이 사용하는지 궁금합니다!
권이현
2022-09-19T06:42:39.977Z
댓글 1
좋아요 0
조회수 207
미해결
공공데이터로 파이썬 데이터 분석 시작하기
윈도우에서는 레티나 디스플레이 코드로 설정을 해도 표에서 달라진게 없는거같은데 혹시 맥 전용 기능인가요..?
연합시스템 dev 계정
2022-09-19T04:38:01.319Z
댓글 1
좋아요 0
조회수 300
미해결
공공데이터로 파이썬 데이터 분석 시작하기
이와같은 오류메시지로 실행이 안되는데 해결책 알수 있을까요 선생님 ㅜ
능함가
2022-09-19T02:59:42.096Z
댓글 1
좋아요 0
조회수 453