목록전체 글 (768)
우노
들어가기 앞서, 하나의 컴퓨터에서 여러 컴퓨터로 SSH 접속을 하는 경우, 모든 접속 명령어들을 기억하는 것은 어렵습니다. 따라서, SSH 접속 정보를 Config 로 등록해둔다면, 간편하게 SSH 접속을 할 수 있게 됩니다. SSH Config 설정 SSH Config 파일 접근(없으면 생성) vi ~/.ssh/config SSH Config 설정 일반 서버 접속 설정 (SSH Public Key를 사용하는 경우) Host nvidia-xavier HostName 192.168.0.15 User nvidia-xavier Port 15000 IdentityFile ~/.ssh/id_rsa AWS 서버 접속 설정 (Pem Key를 사용하는 경우) Host aws-ubuntu2 HostName 52.79.1..
들어가기 앞서, SSH 기본 포트는 22 입니다. 이를 원하는 포트로 변경할 수 있습니다. 기존 포트 확인 cat /etc/ssh/sshd_config | egrep ^\#?Port 포트 변경 ssh 설정 파일 접근 vi /etc/ssh/sshd_config Port 를 찾아, 주석을 제외하고, 원하는 포트로 수정 Port 1234 sshd 재시작 service sshd restart 변경된 포트 확인 cat /etc/ssh/sshd_config | egrep ^\#?Port 참고 https://zetawiki.com/wiki/SSH_포트_변경하기 https://cofs.tistory.com/408 https://kyumdoctor.tistory.com/52 https://www.lesstif.com/l..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/7AuZF/btrrVqewI58/ZhMUC5oNaFkze44kFUqdI0/img.png)
오버로딩(Overloading)이란? 같은 이름을 가지는 메서드가 있더라도, 매개변수의 타입 또는 개수를 달리하여, 여러개의 메서드를 정의할 수 있는 기술입니다. 간단한 오버로딩 예제 코드 매개변수 개수를 다르게 정의할 경우 public int overloadTest(){ return 1; } public int overloadTest(String test){ return 1; } 매개변수 타입을 다르게 정의할 경우 public int overloadTest(String test){ return 1; } public int overloadTest(int test){ return 1; } 리턴 타입을 다르게 정의할 경우 public String overloadTest(String test){ return ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bkd765/btrrUPsnzO7/ZPI0hw13LkqzdJHqctKIG0/img.png)
문제 링크 https://www.acmicpc.net/problem/1149 풀이 현재 집이 빨간색이라면, 다음 집은 초록색, 파란색이 가능합니다. 현재 집이 초록색이라면, 다음 집은 빨간색, 파란색이 가능합니다. 현재 집이 파란색이라면, 다음 집은 빨간색, 초록색이 가능합니다. 그렇다면 반대로, 현재 집이 빨간색이라면, 이전 집은 초록색, 파란색이 가능합니다. 현재 집이 초록색이라면, 이전 집은 빨간색, 파란색이 가능합니다. 현재 집이 파란색이라면, 이전 집은 빨간색, 초록색이 가능합니다. 따라서, 현재 집의 색을 칠할 때, 이전 집으로 가능한 색들을 확인하고, 이전 집들 중, 누적 비용이 가장 적은 색을 선택한 뒤, 현재 집까지의 비용을 [현재 집의 비용 + 이전 집까지의 최소 누적 비용] 으로 갱신..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zFety/btrrRUeRAX0/PNn1CHau9j5D4IJflwkXP0/img.png)
문제 링크 https://www.acmicpc.net/problem/9095 풀이 해당 문제는 규칙을 찾는 것이 중요합니다. 따라서, 아래 그림을 통해 규칙을 찾아보겠습니다. 우선, 4 를 만들 수 있는 조합은 7가지로 이루어져있습니다. 1 + 로 시작하는 조합 1 + 1 + 1 + 1 1 + 1 + 2 1 + 2 + 1 1 + 3 2 + 로 시작하는 조합 2 + 1 + 1 2 + 2 3 + 로 시작하는 조합 3 + 1 즉, 1 + 로 시작하는 조합의 개수는 4 개입니다. 이는, 3 을 만들 수 있는 조합의 개수와 동일합니다. 또한, 2 + 로 시작하는 조합의 개수는 2 개입니다. 이는, 2 를 만들 수 있는 조합의 개수와 동일합니다. 마지막으로, 3 + 로 시작하는 조합의 개수는 1 개입니다. 이는, ..
들어가기 앞서, 양자화(quantization)는 float32 로 학습된 weight 값들을 float16, int8 등의 형태로 변환하는 작업을 의미합니다. 이 작업을 하게되면, .tflite 의 파일크기가 대략 4분의 1정도로 줄어들게 되지만, 세밀한 데이터값을 버리는 작업이므로, model 의 정확도를 잃을 수 있는 작업이 됩니다. 결과적으로 양자화는, model 의 사이즈를 줄임으로써, 정확도는 떨어지지만 빠른 추론 시간을 얻게 되는 작업이라고 볼 수 있습니다. TFLite 변환 시, FP16 양자화 적용 예제 파일로 저장되어 있는 모델을 load 한 뒤, TFLite 모델로 변환 import tensorflow as tf # 파일로 저장되어 있는 모델을 load 한 뒤, TFLite 모델로 변..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/3cSbe/btrrwfYkfM4/tdXyMOaeJhddQaeG3XTLu1/img.png)
ONNX 란? ONNX(Open Neural Network Exchange)는, Tensorflow, PyTorch 와 같은, 서로 다른 DNN 프레임워크 환경에서 만들어진 모델들을, 서로 호환해서 사용할 수 있도록 도와주는 공유 플랫폼입니다. 예를 들어, Tensorflow 에서 모델을 만들고, 이를 ONNX 그래프로 export 하면, PyTorch 와 같은 다른 프레임워크에서도, 해당 모델을 import 해서 사용할 수 있습니다. ONNX 사용 과정 위 그림은, PyTorch 모델을 ONNX 그래프로 export 하는 전체 과정을 도식화한 것입니다. 진행 과정은 아래 순서와 같습니다. 첫 번째 PyTorch 모델과 Sample input 을 인자로 하여, torch.onnx.export 함수를 호출..
문제 링크 https://www.acmicpc.net/problem/3055 풀이 문제 목표 고슴도치가 비버 소굴까지 안전하게 갈 수 있는, 최소 시간을 구하는 것입니다. 중요 사항 입력 받는 물의 시작 위치는 여러 곳일 수 있습니다. 물과 고슴도치는 매 분마다, 상하좌우로 비어있는 곳을 찾아 확장됩니다. 다음턴에 물이 채워지는 곳은 고슴도치가 이동할 수 없습니다. 풀이 방법 물을 먼저 확장시킨 뒤, 고슴도치를 이동시켰으며, 지도에서, 물이 확장되는 곳은 ‘*’ 로, 고슴도치가 이동하는 곳은 ‘S’ 로 변경하며 진행했습니다. 첫 번째 예제 입력에 따른 진행 과정 3 3 D.* ... .S. D** .S* SSS D** SS* SSS 두 번째 예제 입력에 따른 진행 과정 3 3 D.* ... ..S D**..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bIKZqx/btrrdnpy3q9/BSkNboGeZNHs5HSL2Qf1l1/img.png)
트랜스포머(Transformer)란? 인공신경망 알고리즘은 크게, 합성곱 신경망(CNN), 순환 신경망(RNN), 트랜스포머(Transformer) 3가지로 나눠집니다. 이 중 트랜스포머는, 2017년 구글이 발표한 논문인 "Attention is all you need"에서 나온 모델로, 셀프 에텐션(Self-Attention)이라는 방식을 사용하는 모델입니다. 트랜스포머는, 이러한 어텐션 방식을 사용해, 문장 전체를 병렬구조로 번역할 뿐만 아니라, 멀리 있는 단어까지도 연관성을 만들어 유사성을 높였으며, RNN의 한계를 극복했습니다. 또한, 이미지나 언어 번역에 폭넓게 쓰이고 있으며, GPT-3, BERT 등이 가장 관심을 많이 받고 있는 모델입니다. Hugging Face 란? '허깅 페이스..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/6get0/btrrdm3X0sb/UVUo3qjru7QlvqicJGiWWk/img.png)
들어가기 앞서, Linux 에서 하드디스크 파티션을 생성하고, 포맷한 뒤, 마운트 하는 방법에 대해서 다뤄보겠습니다. 하드디스크 장착 우선, Linux 에 하드디스크가 장착된 상태여야합니다. 장착된 하드디스크 확인하기 장착된 하드디스크는 2가지 명령어로 확인할 수 있습니다. 첫 번째 명령어 ls -l /dev/sd* 두 번째 명령어 fdisk -l 예를 들어, /dev/sda 등은 하드디스크를 의미하며, /dev/sda1 등은 파티션을 의미합니다. 파티션 생성 파티션을 관리하는 명령어는 fdisk 입니다. 예를 들어, 하드디스크 /dev/sdb 의 파티션을 관리하고 싶다면, 아래와 같이 명령하면 됩니다. fdisk /dev/sdb 해당 명령어를 입력하면, 아래와 같은 결과 화면을 확인할 수 있으며, m ..