본문 바로가기

분류 전체보기

(120)
[Numpy] 넘파이 브로드캐스팅 및 슬라이싱 이해하기 Numpy는 Numerical Python의 약자로, 고성능 과학계산 컴퓨팅과 데이터 분석에 사용하는 패키지이다. 특히 머신러닝/딥러닝 알고리즘에 사용될 텐서 계산하는데 많이 쓰인다. 빠르고 메모리를 효율적으로 사용하여 벡터 산술연산 세련된 브로드캐스팅 기능을 제공하는 다차원 배열인 ndarray 반복문을 작성할 필요 없이 전체 데이터 배열에 대해 빠른 연산을 제공하는 표준 수학 함수 배열 데이터를 디스크에 쓰거나 읽을 수 있는 도구와 메모리에 올려진 파일을 사용하는 도구 1. 브로드캐스팅 넘파이의 가장 강력한 장점 중 하나를 꼽자면 브로드캐스팅이 아닐까 싶다. 모양이 다른 배열들 간의 연산을 위해, 몇가지 룰을 적용해 배열을 자동적으로 변환하는 자체 기능이다. [규칙 1] Dimension 크기를 같게..
cuda: device-side assert triggered gpu 구동 Error 잡기 gpu로 pytorch 코드를 돌리려고 하면 가끔 이유 모를 에러가 뜬다.. 에러명이 device-side assert triggered인데 에러를 잡을 길이 안보였다. 특히 이게 모델 코드 문제인지, 아니면 gpu 내부 연산 문제인지를 모르니까 더 답답했다. 1. device 설정 바꾸기 기본적으로 해당 에러는 CUDA에서 발생한 에러이기 때문에, GPU기반이 아니라 CPU기반으로 코드를 돌려보면 은근 쉽게 해답이 나올 수 있다. 보통 device에 torch.device를 'cuda:0' 으로 할당할 텐데 이를 'cpu'로 바꾸고 코드를 돌려보자. 이러면 좀 더 정확하고 구체적인 오류가 뜰수도..! (반대로 오류가 아예 안잡힐 수도 있음) 2. 이렇게 돌렸을때 아래 포스팅으로부터 구체적인 오류를 해결..
[프로그래머스] SQL - 입양 시각 구하기 (1), (2) 코딩테스트 연습 - 입양 시각 구하기(1) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr 렙 2 SELECT HOUR(DATETIME) AS HOUR, COUNT(HOUR(DATETIME)) AS CNT FROM ANIMAL_OUTS GROUP BY HOUR HAVING HOUR>=9 AND HOUR
[백준 알고리즘] 집합의 표현 - 유니온 파인드 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net [풀이] def find(x) : if parent[x] < 0: return x else : parent[x] = find(parent[x]) return parent[x] def union(a,b) : a = find(a) b = find(b) if a != b : parent[a] = b import sys sys.setrecursionlimit(10 ** 6) n, m = map(int,sys.stdin.readl..
[프로그래머스] MySQL - 우유와 요거트가 담긴 장바구니 https://programmers.co.kr/learn/courses/30/lessons/62284 코딩테스트 연습 - 우유와 요거트가 담긴 장바구니 CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가 programmers.co.kr 1. INNER JOIN을 이용한 방법 SELECT A.CART_ID FROM CART_PRODUCTS A INNER JOIN CART_PRODUCTS B ON A.CART_ID=B.CART_ID WHERE A.NAME LIKE 'Yogurt' AND B.NAME LIKE 'Milk..
코딩테스트 연습2020 KAKAO BLIND RECRUITMENT문자열 압축 https://programmers.co.kr/learn/courses/30/lessons/60057?language=python3 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr def solution(s): temp = [] for n_cut in range(1,len(s)//2+1): cnt = 0 compressed = '' for cut in range(0,len(s),n_cut): if s[cut:cut+n_cut] == s[cut+n_cut:cut+(n_cut*2)]: cnt +=1 els..
[코딩테스트 연습] - 124 나라의 숫자 https://programmers.co.kr/learn/courses/30/lessons/12899?language=python3 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr def solution(n): answer = '' rest = n%3 k = n//3 if n0: rest = k%3 k = k//3 if rest==0: rest = 4 answer = str(rest) + answer if k==1: break return answer # 나머지가 1이면 1 2면 2 0이면 4 주면 됌 몫을 계속 나눠주면서 나머지만 쏙쏙 빼먹는 구조 def solution(n): answer = '' while n>0: n -= 1 answer = '124'[n%3] + answe..
[프로그래머스] DFS/BFS - 단어 변환 https://programmers.co.kr/learn/courses/30/lessons/43163?language=python3 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr def solution(begin, target, words): visited = [False] * len(words) from collections import deque queue = deque([begin]) for same_apb in range(0,len(begin),-1): no..
[프로그래머스] DFS/BFS - 네트워크(python) https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 1. deque 활용 큐를 사용한 BFS 풀이 from collections import deque def solution(n, computers): computers = deque(computers) network = 0 global visited visited = [False] * n for k in range(n): if BFS(n, computers..