본문 바로가기

분류 전체보기

Tensorboard에서 Open3D 사용하기 Getting started 데이터 셋 읽기 import open3d.ml.torch as ml3d # construct a dataset by specifying dataset_path dataset = ml3d.datasets.SemanticKITTI(dataset_path='/path/to/SemanticKITTI/') # get the 'all' split that combines training, validation and test set all_split = dataset.get_split('all') # print the attributes of the first datum print(all_split.get_attr(0)) # print the shape of the first point .. 더보기
CMRNet++: Map and Camera AgnosticMonocular Visual Localization in LiDAR Maps ▶Abstract - 딥러닝은 컴퓨터 비전 분야에서 비약적인 발전을 이뤘지만, 시각적 측위 능력을 개선하는 데는 아직 부족하다 - 주요 장애물 중 하나는 기존 CNN(Convolutional Neural Network) 기반 포즈 회귀 방법이 기존에 보지 못했던 장소를 일반화 하지 못한다는 것이다. - 최근에 도입된 CMRNet은 LiDAR 맵에서 독립적인 단안 측위(independent monocular localization)를 가능하게 하여 이러한 제약 사항을 효과적으로 해결하였다. - CMRNet++은 더욱 강건하고, 카메라 파라미터에도 독립적인 네트워크이다. - 본 논문에서는 딥 러닝을 기하학적 기술과 결합하고, 메트릭 추론을 학습 프로세스 밖으로 이동시켰다. - 이러한 방법 덕분에, 네트워크 .. 더보기
np.percentile 사용법 numpy.percentile(v, q) 은 q번째 퍼센트의 데이터를 계산한다. 다시 말해 백분위 q에 위치한 값을 계산한다. 길이가 n이 벡터 v가 주어지면, v의 q번째 백분위 수는 v의 정렬된 복사본에서 최소값 ~ 최대값 q/100 이다. 정규화된 순위가 q의 위치와 정확히 일치하지 않는다면, 두개의 가장 가까운 이웃 값과의 거리가 백분위 값이 된다. a = np.array([[10, 7, 4], [3, 2, 1]]) >>> a array([[10, 7, 4], [ 3, 2, 1]]) >>> np.percentile(a, 50) 3.5 >>> np.percentile(a, 50, axis=0) array([6.5, 4.5, 2.5]) >>> np.percentile(a, 50, axis=1) arr.. 더보기
파이썬 프로퍼티(Property) 파이썬 속성 값을 숨기기 위해서 사용하는 setter, getter를 파이썬 프로퍼티를 이용하여 간단하게 구현할 수 있다 결론부터 말하자면, getter에는 @property를 붙이고, setter에는 @{속성이름}.setter 를 붙인다. @{속성이름}.deleter를 사용하여 속성을 제거하는데 사용할 수도 있다. class Person: def __init__(self): self.__age = 0 def get_age(self): # getter return self.__age def set_age(self, value): # setter self.__age = value james = Person() james.set_age(20) print(james.get_age()) class Person:.. 더보기
Decision Tree(개념편) 1. Classification Tree 예시 1.1 데이터로 부터 Classification 트리 구성하기 1.1.1 지니 불순도 계산하기 - 열에 대해 최상위 루트 열 판단하기 - 이진 값을 가진 열에 대해 지니 불순도 계산하기 - 수치 값을 가진 열에 대해 지니 불순도 계산하기 2. Regression Tree 예시 2.1 데이터로 부터 Regression 트리 구성하기 (참고 사이트는 아래에 있습니다) 의사 결정 트리(Decision Tree)가 카테고리 분류를 수행하다면 분류 트리(Classification Tree)라 한다. 의사 결정 트리(Decision Tree)가 숫자 값을 예측한다면 회귀 트리(Regeression Tree)라 한다. 1. 분류 트리(Classification Tree).. 더보기
torch_scatter 설치 본인의 경우 python3.8버전에 pytorch는 1.12.1 버전이었고, cuda는 11.6 버전이었다. rusty1s/pytorch_scatter: PyTorch Extension Library of Optimized Scatter Operations (github.com) 에서 Binaries로 설치하기 위해 https://data.pyg.org/whl/ 사이트에서 아래의 설치 파일을 다운 받아 pip로 설치 하였다. 하지만,, 계속 에러가 났다. (이것 때문에 시간을 1시간 30분 낭비하다가...) pytorch를 1.12.0으로 다운그레이드 해주었고(Previous PyTorch Versions | PyTorch), cuda는 11.6 버전 유지. pip install torch==1.12.0.. 더보기
[DOING] Self-Supervised Representation Learning 정리 Self-supervised Learning은 비지도 학습의 하위 분야 (배경) (연구 흐름) - Pretext Task : Unlabeled Dataset을 입력으로 받아서, 사용자가 정의한 문제(Pretext Task)를 네트워크가 학습하게 하여 데이터 자체에 대한 이해도를 높이고자 함. : Pretext Task가 잘 짜여 졌다면, 네트워크가 Input을 효과적으로 Representation 할 수 있을 것으로 가정한다. : Input을 네트워크가 효과적으로 Representation 하였다면, 사용자가 풀고자 하는 문제(Downstream Task)를 Transfer Learning 한다. : 하지만, 이미지가 늘어날 수록 가짓수도 급속히 늘어나는(?) 문제가 존재 - Contrastive Lea.. 더보기
Data Classes 1. 설명 - 파이썬 3.7 부터 도입된 문법이고, 간략화된 데이터 정의를 가능하게 한다. class RegularCard: def __init__(self, rank, suit): self.rank = rank self.suit = suit def __repr__(self): return (f'{self.__class__.__name__}' \ f'(rank={self.rank!r}, suit={self.suit!r})' def __eq__(self, other): if other.__class__ is not self.__class__: return NotImplemented return (self.rank, self.suit) == (other.rank, other.suit) >>> queen_of.. 더보기