본문 바로가기

전체 글

(594)
[ML] 참고 ganghee-lee.tistory.com/31?category=841638 딥러닝 역전파 backpropagation이란? 이전 글에서 설명했듯이 활성화 함수를 적용시킨 MLP에서 XOR과 같은 non-linear 문제들은 해결할 수 있었지만 layer가 깊어질수록 파라미터의 개수가 급등하게 되고 이 파라미터들을 적절하게 ganghee-lee.tistory.com
im2col thumbs.gfycat.com/AshamedSkinnyAndalusianhorse-mobile.mp4
[ML] CNN Figure 2. Overview and details of a convolutional neural network (CNN)... Download scientific diagram | Overview and details of a convolutional neural network (CNN) architecture for image recognition. (a) Zoom in on a three-channel RGB input, convolution + activation function, e.g., Rectified Linear Unit (ReLU) (blue) and adjace www.researchgate.net 그림이 예쁘게 정리가 잘 돼있어서 저장한다.
[C & C++] 2차원 배열과 포인터 10. 2차원 배열 출처 http://coolprogramming.springnote.com 저작자 NetGong 배열은 같은 자료형의 연속메모리라고 했습니다. 기억하시죠?! 그리고 앞에서 배운 배열은 모두 1차원 배열이라고 합니다. []연산자 하나 blog.daum.net C언어 2차원배열(이중포인터) 동적메모리할당 * 동적메모리 할당에 대해서는 이미 몇번의 포스팅에서 이야기 한적이 있습니다. 이번 포스팅에서는 2차원... blog.naver.com
[BOJ] 1525 퍼즐 1525번: 퍼즐 세 줄에 걸쳐서 표에 채워져 있는 아홉 개의 수가 주어진다. 한 줄에 세 개의 수가 주어지며, 빈 칸은 0으로 나타낸다. www.acmicpc.net #include #include #include #define TARGET "123456780" using namespace std; string Input; map visit; queue q; int d[4] = { -3, -1, 1, 3 }; void input(){ int i =0 ; string N; while( i++ > N; Input += N; } } bool possible(int cur, int d){ if( (cur % 3) == 0 && d == -1) return false; if( (cur % 3..
MSP와 PSP You are correct in a way, in the cortex m (which your stm32 is, though I can't say which variant unless you specify a part) there is one active stack pointer r13, this can however be either the MSP or PSP. The reason for two is to enable the user to easily implement a multi tasking 'operating system'. The idea is that the PSP or process stack pointer is used by the individual tasks, and the kern..
ISR(Interrupt Service Routine) 폴링이 대상을 주기적으로 감시하여 상황이 발생하면 해당처리 루틴을 실행해 처리한다면, 인터럽트는 상대가 마이크로프로세서에게 일을 처리해 달라고 요청하는 수단이다. 따라서 폴링과 대비되는 개념이다.[4][5] 폴링은 주기적으로 마이크로프로세서가 상태를 파악하기 위해 장치의 레지스터를 읽어야 한다. 이 작업이 진행되는 동안은 다른 장치는 체크가 힘들다. 그리고 이런 작업은 장치의 상태를 읽는데 마이크로프로세서의 자원이 낭비된다.[6] 마이크로프로세서의 다른일과 겹쳐 폴링이 고속의 하드웨어에서 데이터 손실될 여지가 있다면, 인터럽트는 해당 하드웨어가 CPU에게 요청하므로 빨리만 처리된다면 데이터 손실 위험이 작아진다. 폴링은 리얼타임에 문제의 소지가 있다면, 인터럽트는 필요할 때 처리되는 경향이 있어서 폴링보..
Interrupt (인터럽트), Exception (예외) Interrupt (인터럽트) : 제어 흐름에서 예상치 못한, 외부에서 전달되는 사건. Exception (예외) : 프로세서 내부에서 발생하는 예상치 못한 사건. 일부 architecture 에서는 exception과 interrupt를 interrupt 로 통합하여 용어를 사용하기도 하는 반면, 다른 architecture에서는 구분하여 사용하기도 한다. 구분할 경우 외부 인터럽트는 인터럽트로, 내부 인터럽트는 예외로 생각하면 된다. - 내부 인터럽트 (Internal interrupt) - exception . SVC (SuperVisor Call) 인터럽트 : 외부의 프로그램이 의도적으로 호출. 예를 들어 다른 프로세스 수행 중 새로운 프로세스를 실행하면 자원 할당 등의 동작을 수행 . 산술 오버..
[Linux] 실행파일 인자, argv, argc main 함수에 argc, argv 라는 매개변수를 전달한다. argc는 argument count로 int형으로 정의한다. 인수들의 개수이다. argv는 argument vector의 줄임말이며 char형 더블포인터이다. 인수들 자체를 나태니는 문자열들의 배열이다. [리눅스환경] 1. argc, argv로 프로그램에 인수 전달 argc, argv로 프로그램에 인자 전달하기 우리는 프로그램을 만들어 실행 할 때 늘 같은 조건으로 하지 않는다. 프로그램에 중요한 인자 값을 전달해야 할 때도 있다. 예를 들어 서버/클라이언트 프 gday2code.tistory.com 먼저, 다음과 같이 실행을 했다고 생각해 봅시다. 초록색으로 칠한 것은 실행 파일 명입니다. work를 실행을 한 것입니다. 그리고 보라색으로..
[C++] template, header, class 그런데 템플릿으로 클래스를 만들 경우는 C++에서 주의할 점이 있는데 h 파일과 cpp 파일로 나누어 선언, 정의할 경우 이 클래스를 사용하는 파일에서는 h 파일뿐 아니라 cpp 파일도 #include해줘야 합니다. 그게 아니라면 h 파일에 선언과 정의를 몰아서 다 하거나... 이게 C++에서 발생하는 결함 중 하나입니다. [C++ 강좌] 065 - 템플릿의 작성 (5) - 클래스 템플릿, 클래스 템플릿의 typedef 오랜만이예요.(아마도)저번 글까지가 함수 템플릿에 관한 내용이었는데, 이번엔 클래스 템플릿에 대한 내용... blog.naver.com
[C++] template
[Basic] cpu, core, processor 3 Processor chip 안에는 다음과 같이 3가지 종류가 있을 수 있겠습니다. single-core processor multi-core processor multi processors 1. multi-core processor 멀티 코어 프로세서란? 전에 포스팅한 멀티 프로세싱과 헷갈릴 수 있는 용어입니다ㅎㅎ 용어 중간에 '코어'만 들어갔을뿐 그게 그거 같죠... 차이를 알아보겠습니다. 멀티 코어 프로세서는 여러 개의 작업을 보다 효율 donghoson.tistory.com 사진에서 E) multi core with shared chche 를 보면 중복되는 부분이 있다. 코어가 두개 있는 cpu이다. cpu = 2개의 코어 + chche 인 것이다. 즉, cpu state, interrupt log..
HAL 라이브러리 HAL 라이브러리 구성 소스파일은 단순히 cubeMX에서 PG13(Green LED)을 Output으로 TrueSTUDIO로 Generate한 코드다. TrueSTUDIO의 첫화면은 다음과 같다. HAL 라이브러리를 사용하면서, main.c에서는 단순히 main.h 헤더를 불러오게.. noel-embedded.tistory.com
Pull up, Pull down 풀업(Pull-up), 풀다운(Pull-down)장치 개요 아두이노를 사용하다 보면 전류를 제어하는 기능을 사용하거나 버튼을 만들때 스위치를 사용해야 할 경우가 많이 생깁니다. 버튼식 스위치는 버튼 상태에 따라 다르게 출력되는 값을 통해 kocoafab.cc
GPIO [STM32 HAL] GPIO Referencehttps://leanpub.com/mastering-stm32https://github.com/eziya/STM32F4_HAL_EXAMP... blog.naver.com
[Git] 로컬에서 원격 branch 삭제하기 Local에서 브랜치 항목을 살펴보기 위해서는 터미널에서 git branch 를 치면 Local의 branch 들을 확인 가능하고 git branch -r을 치면 Remote의 branch 들을 확인할 수 있다. 간혹 Remote 저장소 (원격 저장소)에 추가되거나 삭제된 브랜치가 나의 Local에 적용안될 때가 있다. 상기내역을 보면 Local에서 삭제된 fetch 브랜치들이 remote에는 적용되지 않음을 볼 수 있다 ***** Local에서 git branch -r 로 보이는 remote branch 는 실제 remote 저장소의 branch 가 아니다. 실제로는 remote 저장소의 branch를 바라보는 참조내역이라 보면 될 듯하다. 원격 저장소의 branch가 삭제되어도 Local에서 git ..
keil 프로젝트 생성 KEIL uVision 5 에서 프로젝트 생성. 타겟칩의 예로 STM32를 사용함. 개요. 본 글은 KEIL uVision 5 (KEIL MDK-ARM)에서 프로젝트 생성하는법과 main.c 를 만들어 두는 것까지 정리한다. 예로 사용되는 대상칩은 STM32F407Z로 한다. 1. KEIL uVision 5 에서 프로젝트 생성하기. 단계.. igotit.tistory.com
[Git] pull request 방법 git 초보를 위한 풀리퀘스트(pull request) 방법 · 초보몽키의 개발공부로그 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 wayhome25.github.io
[Git] 특정 branch clone
[Git] branch생성 후 push하기 git checkout -b 브런치이름 git add . git commit -m "어쩌구" git push origin 브런치이름 [Git] 브랜치 생성하기 & 원격 저장소에 push 하기 branch 생성하기&전환하기 git bash 창을 열고 아래와 같이 입력하기 (원하는 작업 폴더로 이동) $ git branch $ git branch ychaen ychaen 이라는 이름의 branch를 생성한다 생성한 브랜치로 이동하기 $ git chec.. ychae-leah.tistory.com
[BOJ] 2261 가장 가까운 두 점 이 문제 학부 때 알고리즘 시간에 들었던 문제이다. 들었지만 전혀 이해 안가는 문제였는데 이제서야 이게 분할정복이라는 것을 어렴풋이나마 이해했다. 2261번: 가장 가까운 두 점 첫째 줄에 자연수 n(2 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 차례로 각 점의 x, y좌표가 주어진다. 각각의 좌표는 절댓값이 10,000을 넘지 않는 정수이다. 여러 점이 같은 좌표를 가질 수도 www.acmicpc.net BOJ 2261:: 가장 가까운 두 점 – 분할 정복 (Closest Pair Problem) – The Casterian http://acmicpc.net/problem/2261 모든 쌍 다 고려하기 점 두 개를 고르는 방법은 $\frac{n(n-1)}{2}$가지니까, 각각에 대해 모..
[C++] vector, reserve(), resize() reserve()는 공간이 예약된다. 배열을 만들때 int array[크기] 하는것과 같다. 만약 앞으로 데이터가 자주 추가된다면 벡터가 가득 찼을때 스스로 공간을 늘리지 않기 때문에 성능을 더 향상할 수 있다. 만약 전부 찬상태에서 또 집어넣으면 늘어난다. resize()는 공간 예약 + 안의 모든 공간을 특정한 값으로 채운다. 변수를 만들때 쓰레기값이 없게 하기위해 NULL로 초기화 하는것과 비슷하다. ex) int array[10] = {0 ,} 현재보다 큰 공간을 예약하면 그만큼 더 집어넣는다. ex) 5개가 들어있는 상태에서 resize(10)하면 5개가 더들어감 -> 5 + 5 = 10 용량이 딱 정해져 있다. 더들어 오게 된다면 버려지게 된다. vector resize()와 reserve()..
[Linux] mv [참고사항] touch touch 는 파일의 날짜정보를 변경하는 명령어로 touch [파일명] 으로 비어있는 파일을 생성할 수 있습니다.
[Linux] Cmake 업데이트 [Ubuntu] CMake 업데이트 하는 방법 nipa에서 지원 받은 서버에 카카오에서 딥러닝 기반으로 개발한 Khaiii 형태소 분석기를 설치하려고 하던 중 (PythonHome) ubuntu@nipa2020-0000:~/somjang-utils/khaiii/build$ cmake .. CMake Error at CMakeLi.. somjang.tistory.com
[C] 매개변수 배열의 크기 실제로 포인터 변수는 항상 4 / 8 바이트의 정해진 크기를 갖습니다. 여기서 4 / 8 바이트는 long형과 마찬가지로 32비트 운영체제에서 4바이트, 64비트 운영체제에서 8바이트를 의미합니다. 구름EDU - 모두를 위한 맞춤형 IT교육 구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/ edu.goorm.io 배열을 함수의 매개 변수로 사용할 때 주의할 점 : C 언어 관련 전체 목차 http://blog.naver.com/tipsware/2210108319691. 일반 변수를 함수의 매개 변수... blog.naver.com 포인터가 어렵나요? (네) ..
[C & C++] 함수에서 배열 매개변수 사용하기 C 언어 코딩 도장: 64.1 배열 매개변수 사용하기 64 함수에서 배열 매개변수 사용하기 함수에서 배열을 매개변수로 사용하면 연속된 값을 전달할 수 있고, 전달한 배열의 요소를 함수 안에서 변경할 수 있습니다. 이번에는 1차원 배열과 2차원 dojang.io
lhs, rhs 연산자 함수를 만들 경우 함수의 매개변수를 적어줄때 변수 이름으로 lhs(Left Hand Side) 와 rhs(Right Hand Side) 를 많이 사용한다. 매개변수가 두개일 경우 첫번째 매개변수에 lhs, 두번째 매개변수는 rhs 로 사용하고 매개변수가 하나일 경우 rhs 로 대부분의 개발자들이 많이 쓰고있다. 여기서 궁금한 것 한가지 나라면 매개변수가 하나일땐 lhs 로 사용할것 같다는것이다. 왜냐하면 사람이 글을 쓸때 왼쪽부터 오른쪽으로 쓴다. 코드도 한줄만 보면 왼쪽에서 오른쪽으로 짠다. class CBase 이것만 봐도 시작은 맨 왼쪽의 c 이다. 그렇다면 첫번째 매개변수는 lhs 로 사용 하는게 더 맞는것이 아닐까 ? 왜 대부분의 사람들은 rhs 로 사용을 하고있을까 그 이유가 궁금해졌다..
ARM assembly ARM 명령어 공부 ipad2에는 A5라는 CPU가 탑제되어 있습니다 ARM 회사에서 만들었기 때문에 리버싱을 하려면 당연히 ARM CPU에 대해서 적당한 지식이 있어야합니다. 여기선 조금씩 알아보고 더욱 자세한 내용은 ARM CPU ezbeat.tistory.com
[Basic] cpu, core, processor 2 1. 컴퓨터 구조와 기능 컴퓨터 구조 컴퓨터 구조는 위에처럼 크게 4가지로 나눠서 볼 수 있습니다. CPU : 중앙처리장치. 데이터를 처리하는 역할 Memory : 데이터를 저장하는 기능을 수행 I/O : 컴퓨터와 외부장치 사이에 데이터를 교환하는 기능을 수행 System Bus : 위의 모든 컴퓨터 시스템 구성요소들을 연결하여 데이터 전송을 수행 컴퓨터 기능 컴퓨터의 기능또한 크게 4가지로 나눠서 생각해볼 수 있습니다. Data Processing : 데이터 연산 Data Storage : 데이터 저장 Data Movement : 데이터 통신, 이동 Control : 제어(명령수행, 리소스 관리 등) 2. CPU 구성 Processor chip 안에는 다음과 같이 3가지 종류가 있을 수 있겠습니다. s..
[Basic] cpu, core, processor 1 CPU(Central Processing Unit, 중앙 처리 장치) 컴퓨터는 크게 CPU, RAM, 하드디스크 정도로 구분할 수 있겠는데요. 이 요소를 사람에 비유하면 RAM은 단기기억, 하드디스크는 장기기억, CPU는 사고를 담당한다고 볼 수 있습니다. CPU의 사고는 중요한 3가지 기능을 말하는 것인데요. 그것은 기억, 연산, 제어를 말합니다. 컴퓨터를 뜯어보면 쿨러 근처에 아주 작은 칩(마이크로프로세서) 모양의 CPU가 있는데요. 그게 전체 컴퓨터의 논리적 사고를 처리합니다. 그 작은게 이 모든 것을 다한다는게 참 대단한 것 같아요. 프로세서(Processor) 컴퓨터 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리회로를 말합니다. 크게 소프트웨어의 신호를 받아 다른 하드웨어 부분으로..