일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 레지스터
- E - Hanging Hearts
- shake!
- 카카오 로그인
- Div. 2
- Flutter
- 앳코더
- 밑바닥부터 시작하는 딥러닝 1
- Hello 2023
- expand item
- 기본키 변경
- 2022
- Codeforces Round 831 (Div. 1 + Div. 2)
- 알고리즘 대회
- 1557
- django
- Good Bye 2022: 2023 is NEAR
- 넥토리얼
- vue3
- dart
- list_display
- 리버싱
- vue-google-login
- Graph Cost
- 인하대 프로그래밍 경진대회
- 코드포스
- idpiframe_initialization_failed
- 카카오 API
- Round 866
- iupc
- Today
- Total
목록전체 글 (54)
pseong

밑바닥부터 시작하는 딥러닝 1 책을 읽고 난 후 책 내용을 전부 요약해서 정리해 봅니다. mnist 손글씨 파이썬 딥러닝 구현 신경망은 입력층, 은닉층, 출력층이 존재한다. 각 각의 층에서 다음 층으로 넘어갈 때 가중치(w)를 곱하고 편향(b)을 더해준다. 그리고 계산된 값을 활성화 함수에 넣어서 활성화를 시키는 것 까지 수행하면 된다. y = h(xw+b) xw+b의 작업을 Affine 레이어라고 부른다. h(a)의 작업을 활성화 함수라고 부르는데 Relu 또는 Sigmoid 등이 있다. 여기서는 ReLU레이어를 사용한다. 이것을 여러 노드들에게 적용시키면 다음과 같다. 이러한 연결을 완전 연결 계층이라고 하는데 필요한 변수는 각 각의 가중치(w)들과 각 층의 편향(b)이다. 흐름은 이미지 입력 -> ..
이미 학습된 모델을 가지고 윈도우에서 텐서 플로우 2를 이용하여 객체 탐지를 해 보자. 1. Object detection api 설치 먼저 Anaconda 여기에 들어가서 아나콘다를 설치하자. 윈도우 터미널에서 다음과 같이 콘다를 이용하여 파이썬 가상 환경을 만들자. conda create -n tensorflow pip python=3.9 그런 다음 가상환경에 진입하자. conda activate tensorflow 진입하고 난 후의 상황은 다음과 같다. (tensorflow) C:\ 가상 환경에 진입한 상태에서 다음 명령어를 통해 텐서 플로우를 설치하자. pip install --ignore-installed --upgrade tensorflow nvdia gpu를 사용한다면 cuda를 설치하여 g..
장고 어드민 페이지에서 유저 테이블이 있고, 유저 목표 테이블(외래키로 유저 테이블)이 있는데, 유저 목표 테이블에서 유저 테이블의 유저의 이름과 UUID를 불러오고 싶었다. 여러 가지 검색도 해보고 몇 가지 방법을 시도해 본 결과 가장 좋은 방법을 찾았다. @admin.register(UserGoal) class UserGoalAdmin(admin.ModelAdmin): def get_uuid(self, obj): return obj.user.id get_uuid.short_description = 'UUID' list_display = ('get_uuid') 이런 식으로 사용을 하면 외래키로 존재하는 유저의 속성을 받아올 수 있다. 이전에 사용했던 방법으로는 class User(AbstractUser..
__cdecl : 함수를 호출한 곳에서 스택을 보정한다. (ex: add esp 8, 함수 호출 전에 푸시해줬던 인자들 스택에서 제거) __stdcall : 함수 내에서 리턴할 때 스택을 보정한다. (ex: ret 16, 함수 호출 전에 푸시해줬던 인자들 스택에서 제거) __fastcall : 인자가 2개 이하일 경우 인자를 푸시하지 않고 edx와 ecx 레지스터를 이용해서 전달한다. __thiscall : __stdcall과 동일하지만 ecx레지스터에 현재 객체 포인터를 전달하고 함수를 호출한다. (class내의 함수에서 사용된다.) TIP) 함수 내의 시작 부분에서 레지스터를 푸시하는 행위는 그 레지스터를 함수 내 연산에 사용하기 위해 이전값을 잠시 저장하는 용도로 자주 해석된다. TIP) void형..

32비트 컴퓨터 기준으로 설명합니다. 함수 호출 시 실행되는 어셈블리어 코드는 다음과 같다. push 세 번째 인자 push 두 번째 인자 push 첫 번째 인자 call 함수 주소 push ebp mov ebp, esp sub esp, 100h (100h는 지역변수 할당 크기, 상황에 따라 달라진다. 함수 종료 시 mov esp, ebp pop ebp 아래 그림을 보면 ebp+8이 첫 번째 인자고, ebp+12가 두 번째 인자, ebp+16이 세 번째 인자이다. 이렇게 증가시키면서 인자 순서를 사용하기 위해 메모리가 감소하는 방향으로 자라나는 스택 메모리 특징 상 세 번째 인자, 두 번째 인자, 첫 번째 인자 이렇게 반대 순서로 스택에 푸시하게 된다. 인자 푸시가 전부 끝나면 함수를 콜 하고 이때 리턴..

같은 레지스터라 해도 사용하는 공간마다 명칭이 다르다. 8 비트 : AH, AL (Higt, Low) 16 비트 : AX 32 비트 : EAX 64 비트 : RAX 레지스터의 역할 레지스터에는 8가지 종류가 있다. 각 각 주로 쓰이는 용도가 존재하고 다른 용도로 사용해도 된다. EAX 산술 계산, 리턴 값 전달 (Accumulator) EDX 산술 계산 (Data) ECX 반복문 카운팅, 주로 몇 번 반복할지 숫자를 저장하고 다운 카운트한다. (Count) EBX 아무 용도로 쓰임 ESI 메모리 복사 시작 인덱스 (Source) EDI 메모리 복사 목적지 인덱스 (Destination) EBP 현재 스택 프레임의 시작 주소(Base) ESP 현재 스택 프레임의 마지막 주소(Stack)

코드상에 문제가 있는 줄 알고 한참을 헤멨다. 코드상 문제가 있는 것이 아니라, hot reload 대신 hot restart를 해야 한다. 이 버튼이 hot restart 버튼이다. 이것 대신 내가 쓴 방법은 터미널에서 flutter clean을 친 다음, pubspec.yaml의 우측 상단에 있는 pub get을 눌러서 문제가 해결되었다.