반응형

분류 전체보기 177

[백준 2579번] 계단 오르기 (python/파이썬)

DFS로 풀었다가 실패하고 DP로 성공 실버 3 절대아님 🌼 문제 링크 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 티어: 실버 III 분류: 다이나믹 프로그래밍 ❗ TRIAL 1. 더보기 코드 import sys input = sys.stdin.readline def dfs(stairs, val, ctr): if not stairs: return val next_val = stairs.pop() if ctr != 2: dfs1 = dfs(stairs,..

[딥러닝 논문리뷰 + 코드] PointCutMix: Regularization Strategy for Point Cloud Classification (Neurocomputing 2022)

CutMix augmentation을 포인트클라우드 데이터에 적용한 논문이다. 두 포인트클라우드 데이터 간의 일대일 대응관계를 찾고, 이를 바탕으로 두 데이터를 섞는 두 가지 방법을 제안했다. Paper: https://arxiv.org/pdf/2101.01461.pdf Code: https://github.com/cuge1995/PointCutMix Introduction 이미지 데이터에 대해 mixed sample data augmentation (MSDA)가 활발하게 사용되어 왔다. 대표적인 예시는 MixUp (Zhang et al., 2018)과 CutMix (Yun et al., 2019) 가 있다. 본 논문에서는 포인트클라우드 데이터에 대해 CutMix를 수행하는 PointCutMix를 제안한..

[백준 14500번] 테트로미노 (python/파이썬)

분노의 테트리스.. 머리가 나쁘면 몸이 고생한다 🌼 문제 링크 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 티어: 골드 IV 분류: 구현, 브루트포스 알고리즘 ❗ TRIAL 1. 더보기 코드 import sys input = sys.stdin.readline from collections import deque N, M = list(map(int, input().split())) paper = [] totalmax = 0 for _ in r..

[백준 7569번] 토마토 (python/파이썬)

분노의 토마토...🍅 접근방법이 틀려서 알고리즘을 몇번씩 수정했다 🌼 문제 링크 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 티어: 골드 V 분류: 그래프 이론, 그래프 탐색, 너비 우선 탐색 ❗ TRIAL 1. 더보기 코드 import sys input = sys.stdin.readline from collections import deque M, N, H = map(int, input().split()) #fill..

[matplotlib] matplotlib.pyplot을 이용한 이미지 시각화 총정리

0Install pip install matplotlib Import import matplotlib.pyplot as plt * 버전 확인 import matplotlib print(matplotlib.__version__) plot image #load image import cv2 img = cv2.imread('dog.jpg') img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) #show iage plt.imshow(img) figure 크기 조절 plt.figure(figsize=(15, 15)) plt.imshow(img) colorbar 표시 plt.imshow(img[...,0]) #마지막 채널만 표시 plt.colorbar() * Colorbar 위치 이동 (v..

Numpy & PyTorch로 2D fourier transform, inverse fourier transform하기

사용할 이미지 Load image import cv2 import matplotlib.pyplot as plt img = cv2.imread('dog.jpg', cv2.IMREAD_GRAYSCALE) img = cv2.resize(img, (256, 256)) print(img.shape) plt.imshow(img, cmap='gray') plt.colorbar() (256, 256) FFT and IFFT using numpy import numpy as np fft_img = np.fft.fftshift(np.fft.fft2(img, norm='ortho')) print(fft_img.shape, fft_img.dtype) plt.imshow(np.abs(fft_img), cmap='gray') p..

[딥러닝 논문리뷰] PointMLP - Rethinking Network Design and Local Geometry in Point Cloud: A Simple Residual MLP Framework (ICLR 2022)

ICLR 2022에서 발표된 Pointcloud analysis를 위한 모델이다. 기존 Pointcloud analysis 모델들은 복잡한 local geometric extractor들을 이용해 왔는데, 이들과 달리 매우 간단한 구조로 SOTA를 달성할 수 있음을 보였다. Paper, Code 1. Introduction 기존 pointcloud 모델들은 3D geometric을 포착하기 위해 convolution, graph, attention 등 매우 복잡한 local geometric extractor들을 이용했는데, 이들은 computational overhead가 너무 크다는 단점이 있다. 저자들은 pointcloud analysis의 핵심은 detailed local geometrical i..

[StyleGAN 시리즈] ProGAN/PGGAN, StyleGAN, StyleGAN2

ProGAN부터 StyleGAN2까지, style transfer에서 가장 유명한 모델인 StyleGAN의 변천사와 각 모델의 특징을 간단히 정리해 보고자 한다. 1. ProGAN/PGGAN (ICLR 2018) Paper: Progressive Growing of GANs for Improved Quality, Stability, and Variation (link) GAN을 이용해 고해상도 이미지를 생성하는 것은 쉽지 않다. 따라서 latent vector에서 한번에 고해상도의 이미지를 생성하기보다는, 낮은 해상도의 이미지(4x4)를 생성하는 것부터 학습해서 점진적으로(progressive) 레이어를 추가하며 고해상도 이미지(1024x1024)를 만드는 방법을 학습한다. 레이어를 추가할 때는 fade..

[딥러닝 논문리뷰] SimSiam: Exploring Simple Siamese Representation Learning (CVPR 2021)

CVPR 2021에서 발표된 self-supervised learning 논문. 기존의 다른 self-supervised learning 방법인 SimCLR, SwAV, BYOL과의 비교를 통해 제안된 방법을 설명하고 있다. 개인적으로 문장이나 전체적인 구조가 매우 이해하기 쉽게 잘 쓰여져 있다고 느꼈다. 논문 링크 Introduction Self-supervsied learning에서는 보통 Siamese network 구조를 많이 이용한다. 이는 weight를 서로 공유하는 neural network를 의미하는데, 이들은 각 entity를 비교하는 데에 유용하게 사용될 수 있다. 그러나 Siamese network는 output이 하나의 constant로 수렴하는 collapsing이 발생할 수 있다..

[PyTorch Implementation] PointNet 설명과 코드

PointCloud 데이터를 이용한 대표적인 모델인 PointNet의 구조와 PyTorch로 구현한 코드이다. PointNet은 Feature extraction 후 classification / segmentation을 수행할 수 있지만, 본 글에서는 classification을 위한 네트워크만 소개한다. 코드는 가장 star 수가 많은 PyTorch implementation인 아래 Github repo를 참고하여 일부 수정했다. https://github.com/fxia22/pointnet.pytorch/tree/f0c2430b0b1529e3f76fb5d6cd6ca14be763d975 64로 늘려준다. 64차원의 shared mlp에 마찬가지로 T-Net과 matrix multiplication을 ..

반응형