반응형

Python 266

[파이썬 알고리즘 인터뷰] 25. 원형 큐 디자인

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 25. 원형 큐 디자인 leetcode 622. Design Circular Queue 문제입니다. leetcode.com/problems/design-circular-queue/ 풀이 class MyCirculurQueue: def __init__(self, k): self.q = [None] * k self.maxlen = k self.p1 = 0 self.p2 = 0 # enQueue(): rear 포인터 이동 def enQueue(self, value): if self.q[self.p2] is None: self.q[self.p2] = value self..

Python/알고리즘 2021.03.02

[파이썬 알고리즘 인터뷰] 24. 스택을 이용한 큐 구현

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 24. 스택을 이용한 큐 구현 leetcode 232. Implement Queue using Stacks 문제입니다. leetcode.com/problems/implement-queue-using-stacks/ 풀이 class MyQueue: def __init__(self): self.input = [] self.output = [] def push(self, x): self.input.append(x) def pop(self): self.peek() return self.output.pop() def peek(self): # output이 없으면 모두 재입..

Python/알고리즘 2021.03.02

[파이썬 알고리즘 인터뷰] 23. 큐를 이용한 스택 구현

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 23. 큐를 이용한 스택 구현 leetcode 225. Implement Stack using Queues 문제입니다. leetcode.com/problems/implement-stack-using-queues/ 풀이 class MyStack: def __init__(self): self.q = collections.deque() def push(self, x): self.q.append(x) # 요소 삽입 후 맨 앞에 두는 상태로 재정렬 for _ in range(len(self.q) - 1): self.q.append(self.q.popleft()) def ..

Python/알고리즘 2021.03.02

[PyTorch] ResNet, pre-trained 모델 불러오기

이번 포스팅에서 ResNet pre-trained model을 불러오도록 하겠습니다. pre-trained model 불러오기 작업환경은 google colab에서 진행했습니다. 1. pre-trained model을 불러옵니다. # load resnet18 with the pre-trained weights from torchvision import models import torch resnet18_pretrained = models.resnet18(pretrained=True) print(resnet18_pretrained) 2. output layer를 현재 data에 맞게 수정합니다. # change the output layer to 10 classes num_classes = 10 num_f..

[PyTorch] 이미지 픽셀의 평균, 표준편차를 계산하여 정규화하기

dataset에 있는 이미지의 평균과 표준편차를 계산하여 정규화(normalize) 해보겠습니다. 1. 데이터셋을 불러옵니다. 저는 torchvision에서 제공하는 STL-10 dataset을 사용했습니다. train dataset을 불러와서 train_ds에 저장합니다. # loading training data from torchvision import datasets import torchvision.transforms as transforms import os path2data = '/data' # if not exists the path, make the path if not os.path.exists(path2data): os.mkdir(path2data) data_transformer = ..

[PyTorch] dataset 분할하기

이번 포스팅에서는 10개의 카테고리을 지닌 데이터셋을 각 카테고리간 동일한 비율로 데이터를 갖도록 분리해보겠습니다. 사용하는 데이터셋은 STL-10 dataset입니다. STL-10 dataset은 10개의 카테고리로 이루어져 있으며, train과 test dataset을 제공합니다. val dataset을 제공하지 않기 때문에 test dataset을 분할하여 val dataset을 만들어보도록 하겠습니다. 작업 환경은 colab에서 진행했습니다. 분할에 이용하는 함수는 sklearn 모듈의 StratifiedShuffleSplit 함수입니다. STL-10 dataset 불러오기 파이토치의 torchvision 패키지에서 제공하는 STL-10 dataset을 불러옵니다. STL-10 dataset은 9..

[파이썬 알고리즘 인터뷰] 22. 일일 온도

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 22. 일일 온도 리트코드 739. Daily Temperatures 문제입니다. leetcode.com/problems/daily-temperatures/ 풀이 stack에 인덱스를 저장하고 현재 인덱스에 해당하는 온도가 stack[-1] 인덱스에 해당하는 온도보다 크면 stack에서 값을 꺼내서 인덱스 차이를 계산합니다. def dailyTemperatures(self, T): answer = [0] * len(T) stack = [] for i, t in T: while stack and T[stack[-1]] < t: last = stack.pop() a..

Python/알고리즘 2021.02.24

[PyTorch] convolutional layer 출력 크기 계산하는 함수 만들기

CNN 모델을 구축하다보면 conv layer의 출력값 계산을 실수하여 모델이 오류가 발생하는 경우가 종종 있습니다. 실수를 방지하기 위해 conv layer의 출력값을 계산해주는 함수입니다. import torch.nn as nn import numpy as np # define the helper function def findConv2dOutShape(H_in, W_in, conv, pool=2): # get conv arguments kernel_size = conv.kernel_size stride = conv.stride padding = conv.padding dilation = conv.dilation H_out = np.floor((H_in + 2*padding[0] - dilation[..

[PyTorch] 암 이미지로 커스텀 데이터셋 만들기(creating custom dataset for cancer images)

kaggle에 있는 Histopathologic Cancer Detection 대회에서 제공하는 Histopathologic cencer 이미지로 커스텀 데이터셋(custom dataset)을 만들어보도록 하겠습니다. histopathologic cencer 이미지는 종양이 있는 경우 1, 없는 경우 0 두 가지로 분류되는 이진 분류 문제입니다. 우선, kaggle에서 제공한 데이터 레이블을 확인해보겠습니다. 구글 코랩을 사용했습니다. import pandas as pd path2csv = '/content/cookbook/MyDrive/data/train_labels.csv' labels_df = pd.read_csv(path2csv) labels_df.head() id 는 이미지의 이름을 의미합니다...

[파이썬 알고리즘 인터뷰] 21. 중복 문자 제거

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 21. 중복 문자 제거 리트코드 316. Remove Duplicate Letters 문제입니다. leetcode.com/problems/remove-duplicate-letters/ 풀이 def removeDuplicateLetters(self, s): stack,seen,counts = [], set(), collections.Counter(s) for char in s: counts[char] -= 1 while stack and char 0: seen.remove(stack.pop()) se..

Python/알고리즘 2021.02.22
반응형