본문 바로가기
반응형

전체 글98

[ROS] CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message): ROS 에러 발생 catkin_make 하는데 아래와 같은 에러가 발생함 -- Could NOT find PY_em (missing: PY_EM) CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message): Unable to find either executable 'empy' or Python module 'em'... try installing the package 'python3-empy' Call Stack (most recent call first): /opt/ros/noetic/share/catkin/cmake/all.cmake:164 (include) /opt/ros/noetic/share/catkin/cmake/cat.. 2023. 6. 7.
우분투(Ubuntu) 설치시 검은화면 해결 1. usb 부팅을 시키고 e키를 눌러 grub옵션에 들어간다. 2. quite splash라는 문구 전에다가 nouveau.modeset=0를 추가해준다. 3. ctrl+x를 눌러 2번에서 작성한 옵션으로 부팅한다. 4. 해상도에 따라 설치 2023. 6. 7.
Virtual Box 게스트 확장 이미지 안될 때 장치 - 게스트 확장 CD 이미지 삽입- 그 후 왼쪽에 CD 선택 - CD 폴더 내에서 터미널 실행 후 sh autorun.sh 2023. 6. 6.
ROS catkin 빌드 후 패키지를 못찾는 문제 echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc 2023. 6. 6.
[PyTorch] 실제 데이터를 텐서로 표현해보기 이미지 파일 로딩 이미지는 여러 파일 포맷으로 저장될 수 있지만 다행히도 파이썬에서는 다양한 방식으로 이미지를 로딩할 수 있다. 코드의 img는 너비와 높이에 해당하는 두 개의 공간 정보와 색 공간을 포함하는 3차원 배열 같은 넘퍼이 객체다. 현재 이미지는 H * W * C로 되어있지만 파이토치 모듈은 텐서가 C * H * W, 즉 채널, 높이, 너비 순으로 배치되어야 한다. 레이아웃 변경하기 차원을 변경하려면 텐서의 permute 메소드를 사용한다. 앞에서 얻은 H * W * C 입력 텐서에 대해 채널2와 채널0 그리고 채널1 순으로 나열되도록 변경하면 적절한 레이아웃이 된다. 이 연산은 텐서 복사본을 만들지 않는다는 점에 유의해야 한다. out은 img 저장 공간과 동일하며 단순히 텐서 레벨에서 크기.. 2023. 4. 24.
[Linux] 기초/기본 명령 사용법 날짜와 시간 date 명령은 다음과 같이 현재 날짜와 시간을 출력한다. glory@glory-VirtualBox:~$ date 2023. 04. 01. (토) 11:27:06 KST 시스템 정보 hostname명령을 입력하면 내가 사용하고 있는 호스트 이름을 확인할 수 있다. uname명령을 입력하면 현재 사용하고 있는 운영체제를 확인할 수 있다. glory@glory-VirtualBox:~$ hostname glory-VirtualBox glory@glory-VirtualBox:~$ uname Linux glory@glory-VirtualBox:~$ uname -a Linux glory-VirtualBox 5.19.0-35-generic #36~22.04.1-Ubuntu SMP PREEMPT_DYNAM.. 2023. 4. 1.
[Linux] 리눅스 명령 사용 리눅스 터미널 동작시키기 리눅스에서 명령을 사용하려면 터미널을 동작시켜야 한다. 우분투 환경에서 터미널에 접근하기 위해서는 두가지 방법이 있다. 먼저 GUI가 익숙한 사용자들을 위해 왼쪽 하단의 앱표시를 누른다. 앱표시를 누르고나면 위와 같은 화면으로 바뀌는데 여기에서 터미널을 선택하면 된다. 또 다른 방법으로는 Ctrl + Alt + T를 누르는 방법이 있다. 앞으로 우분투 리눅스를 사용할 때 매우 자주 사용하므로 외워두는 것을 추천한다. 다음과 같이 터미널이 잘 나오는 것을 확인할 수 있다. 명령 행 편집 방법 명령어를 이용하여 리눅스를 사용하면 편집 방법을 알아두면 좋다. 1. 문자 지우기 리눅스의 명령 행에서 문자를 지울 때는 Backspace나 Delete 키를 사용한다. 리눅스에 따라 둘 중 .. 2023. 4. 1.
[Linux] 유닉스 / 리눅스 시스템 구조 유닉스 시스템 구조 운영체제는 컴퓨터의 하드웨어 자원을 운영 관리하고 프로그램을 실행할 수 있는 환경을 제공하는 소프트웨어이다. 일반적으로 이러한 소프트웨어의 핵심부분을 커널이라고 하는데 이는 상대적으로 작고 운영체제의 핵심 역할을 하기 때문이다. 커널과 시스템 호출 커널(kernel)은 하드웨어를 운영 관리하여 프로세스, 파일, 메모리, 통신, 주변 장치 등을 관리하는 서비스를 제공한다. 커널이 제공하는 각 서비스에 대해 다음과 같이 요약 정리할 수 있다. 프로세스 관리 여러개의 프로그램이 실행될 수 있도록 프로세스들을 CPU 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이 는 효과를 낸다. 파일 관리 디스크와 같은 저장장치 상에 파일 시스템을 구성하여 파일을 관리한다. 메모리 관리 메인 메모리가.. 2023. 3. 30.
[Linux] 유닉스 / 리눅스 특징 유닉스와 리눅스 유닉스(Unix)는 1970년대 초에 미국 AT&T 벨 연구소에서 켄 톰슨(Ken Thompson), 데니스 리치(Dennis Ritchie) 등에 의해 다중 사용자 운영체제로 개발되었으며 그 이후로 지속적으로 발전해 오고 있다. 리눅스(Linux)는 1990년대 초에 리누스 토르발즈(Linus Torbalds)에 의해 pc를 위한 운영체제인 리눅스(Linux)가 개발됨으로써 보다 광범위하게 사용되게 되었다. 리눅스는 유닉스 기반의 운영체제로 개발되어 강력한 소프트웨어로 자리잡고 있다. 특히 서버용 pc에서 높은 점유율을 갖고 있는 운영체제이다. 유닉스의 설계 철학 단순성 이식성 개방성 단순성 유닉스는 운영체제 자체를 가능한 한 단순화시켜 최소한도로 필요한 기능만 제공하도록 하였다. 또한.. 2023. 3. 29.
[파이썬 딥러닝] 활성화 함수 계층 구현하기 ReLU 계층 활성화 함수로 사용되는 ReLU 수식은 다음과 같습니다. x에 대한 y의 미분은 다음과 같습니다. 순전파 때의 입력인 x가 0보다 크면 역전파는 상류의 값을 그대로 하류로 흘립니다. 반면, 순전파 때 x가 0 이하면 역전파 때는 하류로 신호를 보내지 않습니다.(0을 보냅니다.) 계산 그래프로는 다음과 같습니다. class Relu: def __init__(self): self.mask = None def forward(self, x): self.mask = (x 2023. 3. 29.
[파이썬 딥러닝]순전파와 역전파 기초 덧셈 노드의 순전파와 역전파 순전파는 우리가 알고 있는 덧셈입니다. 위 그림을 보면 덧셈노드를 통해 더하게 됩니다. 따라서 순전파를 통과하면 z = x + y라는 식이 나옵니다. 이 식을 편미분을 하게되면 z를 x에 대해 미분해도 y를 통해 미분해도 모두 1이 됩니다. 따라서 역전파때 상류에서 전해진 미분값을 그대로 하류로 흘리게 됩니다. 곱셈 노드의 순전파와 역전파 곱셈 노드도 순전파는 덧셈 노드와 크게 다르지 않습니다. 우리가 알고 있던 곱셈입니다. z = xy라는 식을 미분하면 z를 x에 대해 미분 했을대 y가 되고 z를 y에 대해 미분 했을때 x가 남게 됩니다. 따라서 곰셈의 역잔파에서는 입력 신호를 바꾼 값을 곱하여 흘려 보내줍니다. 때문에 곱셈의 역전파는 순방향 입력 신호의 값이 필요합니다. .. 2023. 3. 28.
[파이썬 딥러닝] 학습 알고리즘 구현 신경망 학습 절차 전제 신경망에는 적응 가능한 가중치와 편향이 있고, 이 가중치와 편향을 훈련 데이터에 적응하도록 조정하는 과정을 '학습'이라고 합니다. 신경망 학습은 다음과 같이 4단계로 수행합니다. 1단계 - 미니배치 훈련 데이터 중 일부를 무작위로 가져옵니다. 이렇게 선별한 데이터를 미니배치라 하며, 그 미니배치의 손실 함수 값을 줄이는 것이 목표입니다. 2단계 - 기울기 산출 미내배치의 손실 함수 값을 줄이기 위해 각 가중치 매개변수의 기울기를 구합니다. 기울기는 손실 함수의 값을 가장 적게 하는 방향을 제시합니다. 3단계 - 매개변수 갱신 가중치 매개변수를 기울기 방향으로 아주 조금 갱신합니다. 4단계 - 반복 1 ~ 3단계를 반복합니다. 이것이 신경망 학습이 이뤄지는 순서입니다. 이는 경사 하.. 2023. 3. 24.
[파이썬 딥러닝] 수치 미분 미분 미분이란? 한순간의 변화량을 표시한 것 수식 파이썬으로 구현한 미분 def numerical_diff(f, x): h = 1e-50 return (f(x + h) - f(x)) / h 그러나 이 방식은 반올림 오차 문제를 일으킵니다. 반올림 오차는 작은 값이 생략되어 최종 계산 결과에 오차를 생기게 합니다. import numpy as np np.float32(1e-50) [출력] 0.0 위와 같이 작은 값을 넣어 0으로되어 버리는 오차를 말합니다. 이를 개선하기 위해서 두가지 방법이 있습니다. 첫째로는 h를 10 ^ -4를 사용하여 컴퓨터로 계산하는데 문제가 되지 않도록 하는 방법입니다. 둘째로는 차분을 이용하는 방법입니다. 차분 '진정한 미분'은 x 위치의 함수의 기울기에 해당하지만, 이번 구현.. 2023. 3. 22.
[파이썬 딥러닝] 신경망 학습 학습 학습이란? 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻한다. 훈련 데이터와 시험 데이터 기계 학습 문제는 데이터를 훈련 데이터(train data)와 시험 데이터(test data)로 나눠 학습과 실험을 수행하는 것이 일반적입니다. 우선 훈련 데이터만 사용하여 학습하면서 최적의 매개변수를 찾습니다. 그런 다음 시험 데이터를 사용하여 앞서 훈련한 모델의 실력을 평가하는 것입니다. 훈련 데이터와 시험 데이터를 나누는 이유는 우리가 원하는 모델은 범용적으로 사용할 수 있는 모델이기 때문입니다. 이 범용 능력을 제대로 평가하기 위해 훈련 데이터와 시험 데이터를 분리하는 것이죠. 범용 능력은 아직 보지 못한 데이터로도 문제를 올바르게 풀어내는 능력입니다. 이 범용 능력을 획득하는 .. 2023. 3. 16.
[파이썬 딥러닝] 신경망 퍼셉트론에서 신경망으로 신경망을 그림으로 나타내면 가장 왼쪽 Input(입력층), 중간 Hidden(은닝층), 오른쪽 Output(출력층)이라고 합니다. 은닉층의 뉴런은 사람 눈에는 보이지 않는습니다. 퍼셉트론 복습 X1과 X2라는 두 신호를 입력받아 Y를 출력하는 퍼셉트론입니다. 이 퍼셉트론을 수식으로 나타내면 다음과 같습니다. 여기서 b는 편향을 나타내는 매개변수로, 뉴런이 얼마나 쉽게 활성화되느냐를 제어합니다. 한편, w1과 w2는 각 신호의 가중치를 나타내는 매개변수로, 각 신호의 영향력을 제어합니다. 위의 네트워크에는 편향 b가 보이지 않는데 편향 b를 명시한다면 다음과 같습니다. 활성화 함수 활성화 함수란 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할입니다. 시그모이드 함수 신경망에서 .. 2023. 3. 14.
반응형