일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘 연습
- Algorithm
- PYTHON
- 알고리즘 풀이
- web
- API
- AWS
- form
- react
- CSS
- 백준
- HTML
- es6
- MAC
- c++
- DRF
- Baekjoon
- 파이썬 알고리즘
- 장고
- 알고리즘 문제
- js
- 파이썬
- 알고리즘
- django rest framework
- Git
- javascript
- java
- django ORM
- Django
- django widget
- Today
- Total
목록분류 전체보기 (341)
수학과의 좌충우돌 프로그래밍
텐서연산 그레디언트 기반 최적화 output = relu(dot(W,input)+b) W와 b는 각 층의 속성처럼 생각할 수 있다. W는 가중치, b는 편향이라고 부르며 초기에는 무작위 난수로 채워져 있다. 당연히 난수이기 때문에 위 식의 계산은 의미가 없다. 여기서 각 층의 속성들을 조정하게 되는데 그 과정은 다음과 같다. 훈련 샘플 x 와 이에 대응되는 타깃 y의 배치를 추출한다. x 에 대한 예측값 y_pred를 구한다. y_pred와 y의 차이를 이용해 손실을 계산한다. 배치에 대한 손실이 감소되는 방향으로 각 층의 속성들을 조정한다. 4번에서 각 층의 속성들을 어떠한 방법으로 조정할지가 중요한 포인트가 된다. 확률적 경사 하강법 앞에서 봤던 4번을 어떻게 구현할지에 대한 이야기이다...
텐서연산 텐서 연산 브로드 캐스팅 놀랍게도 2D 텐서와 벡터를 더할 수 있다. 두 텐서는 크기가 다른데 어떻게 더해질 수 있을까?작은 텐서가 큰 텐서에게 맞춰져서 더해지게 되는데 이를 브로드 캐스팅 이라고 한다.브로드 캐스팅은 다음과 같은 단계로 실행된다. 큰 텐서의 ndim에 맞도록 작은 텐서에 축이 추가된다. 작은 텐서가 새 축을 따라서 큰 텐서의 크기에 맞도록 반복된다. 예를 통해 알아보자.x의 크기는 (32.10) 이고 y의 크기는 (10,) 일 때, 1번에 의해 y에 비어있는 축을 추가하여 크기를 (1,10) 으로 만든다. 그 후 y를 32번 반복하면 텐서 y의 크기는 (32,10)이 된다. 이를 코드로 구현해보자. def braodcast(x,y): assert len(x.shap..
신경망을 위한 데이터 표현 모든 머신러닝 시스템은 일반적으로 텐서를 기본 데이터 구조로 사용한다. 텐서는 데이터를 위한 컨테이너라고 생각할 수 있다. 그 데이터로는 임의의 차원 개수를 가지는 행렬이 들어간다. 각 차원에 따라 어떻게 데이터와 텐서가 변화하는지 알아보자. 스칼라(0D텐서) 하나의 숫자만 담고 있는 텐서를 스칼라라고 한다. 숫자는 float32 또는 float64 타입을 가진다. ndim 속성을 사용하면 넘파이 배열의 축 개수를 확인가능 텐서의 축 개수를 랭크(rank) 라고 부른다. import numpy as np x = np.array(7) >>> x array(12) >>> x.ndim 0 벡터(1D텐서) 숫자의 배열을 벡터 라고 한다. 아래 예시에서의 벡터는 5개의 원소를 가지고 있..
먼저 크롤링이 무엇인지 부터 알아보자. 크롤링이란 사람이 웹페이지에 접속해서 정보를 찾는 과정을 프로그램을 통해 찾아 수집하고 원하는 형태에 맞게 가공하는 모든 과정을 의미한다.크롤링에 대한 설명을 하기 전에 먼저 알아야 할 개념이 있는데 바로 HTTP이다. 아마 많이 익숙할 것이다. 우리가 웹 상에서 어느 페이지에 접속하기 위해 입력하는 주소가 대부분 http 로 시작하기 때문이다. HTTP 에 대해서 알아보자 HTTP 란? HTTP는 HyperText Transfer Protocol 의 약자로 인터넷 통신을 위해 사용되는 프로토콜이다. 또 어려운 단어가 등장했다. 그러면 프로토콜은 무엇일까? 쉽게 생각해서 컴퓨터 간의 의사소통에 사용되는 언어이다. 사람 간의 대화에서도 서로 이해할 수 있는 같은 언어..
인공지능과 머신러닝, 딥러닝 인공지능과 머신러닝, 딥러닝은 다음과 같은 포함관계를 가진다.이에 대해서 알아보자. 인공지능 정의 : 보통의 사람이 수행하는 지능적인 작업을 자동화하기 위한 연구활동 이미지 처럼 머신러닝과 딥러닝을 포괄하는 종합적인 분야 심볼릭 AI(symbolic AI) 1950년대부터 1980년 AI의 지배적인 패러다임 명시적인 규칙을 충분하게 많이 만들면 인간 수준의 인공지능을 만들 수 있다. 머신러닝 배경 : 심볼릭 AI 는 체스게임 처럼 잘 정의된 문제에 대해서는 적합하지만, 이미지, 음성과 같은 불분명한 문제에 대해서는 부적합 기존의 방식은 규칙과 데이터를 입력하여 해답을 찾는 방식이라면, 머신러닝은 데이터와 해답을 입력하여 규칙을 찾는 방식 프로그래밍이 되는 것이 아닌 훈련 이 ..
html 파일을 어느 경로에 넣어주어야 할까 그 동안 잘못된 방식으로 개발을 해와서 이를 수정하고자 한다. 잘못된 부분은 html 파일을 담아주는 경로 설정이다. 장고에서는 MTV 패턴을 따른다. 여기서 T는 templates 를 의미하며 화면 UI를 담당한다. 즉 html 파일들을 저장할 공간이다. html 파일들은 templates 디렉토리 안에 담아 장고에게 알려주는 역할을 한다. 따라서 현재까지 다음과 같은 경로에 html 파일들을 담아주었다. {앱이름}/templates/html파일 하지만 얼마 전에 이 방법이 잘못되었음을 깨달았다. 간단한 토이프로젝트에서는 이 부분이 문제를 일으킬 가능성이 적다. 그 이유는 다른 어플리케이션에 같은 이름의 html 파일이 존재해야 하기 때문이다. 장고는 이름이..
requirements.txt 패키지 종속성 관리 intro 현재 장고 프로젝트를 진행중입니다. 둘이서 git 을 통해서 협업을 하고 있으며 각자 venv를 사용해 가상환경에서 작업을 하고 있습니다. 한 가지 문제에 봉착했는데 각자 작업을 하다보니 install 해오는 패키지가 달라 merge를 할 때마다 문제가 생겼습니다. 패키지 종속성 관리 git 을 통해 협업을 하게 되면 다음과 같은 문제에 봉착하게 됩니다. 파일들은 버젼관리가 잘되더라도, install 한 패키지는 내 환경에만 남아있기 때문이죠. 이럴 경우에는 내 환경에 어떤 패키지들을 사용하고 있나 함께 넘겨주도록 합니다. 현재 환경에서 설치한 패키지를 알려주는 명령어는 다음과 같습니다. pip freeze 그 결과 설치되어있는 패키지들을 확인..
안녕하세요 강민성입니다. 이번 시간에는 postgreSQL 사용에 대해서 알아보도록 하겠습니다. 우리는 여태까지 데이터 베이스를 따로 연동하지 않고도 잘 사용해왔습니다. 그 이유는, 장고는 기본적으로 sqlite 를 사용하기 때문입니다. sqlite는 여태 우리가 진행했던 소규모의 프로젝트, 토이 프로젝트 등에는 아무 문제 없지만 규모가 커지게 되면, 역부족 입니다. 이러한 이유로 사용가능한 여러 데이터 베이스가 존재합니다. 그 중에서도 postgreSQL 을 선택한 이유는 아래 이유가 같습니다. 1. 무료로 이용가능하다. 2. 설치 연동이 쉬운 편에 속한다. 3. 직관적 UI 를 가지고 있다. postgreSQL 사용하기! 지금껏 splite를 어떻게 사용해왔는지 postgreSQL은 어떻게 연동할건지..
안녕하세요 강민성입니다. 이번 시간에는 app 재사용에 대해서 알아보도록 하겠습니다. 우리가 app 을 기능별로 세분화 하는 이유가 바로 재사용 때문이었습니다. 이 방법을 알아보도록 하겠습니다. app 재사용 하는 법 재사용의 원리 app 을 재사용하기 위해서는 재사용할 app 을 먼저 패키징 해줘야합니다. 패키징이라고 함은 app 을 다른 프로젝트에서 가져가서 사용할 수 있도록 포장하는 일이라고 할 수 있습니다. 그리고 이미 포장을 푸는 방법은 해본 적이 있으실 겁니다. pip install {패키지 이름} 다음과 같은 방식으로 패키지를 풀어줄 수 있습니다. 패키징 하는 법 그럼 패키징하는 방법에 대해서 알아보겠습니다. 패키징을 하기 위해서는 4개의 파일이 필요합니다. 4개의 파일의 이름과 각각의 역할..
안녕하세요 강민성입니다. 이번에는 썸네일에 대해서 알아보도록 하겠습니다. 썸네일이 무엇인지 들어보셨나요? 썸네일이란 여러 이미지 파일 중 이를 대표하는 이미지 파일을 말합니다. 이 블로그 포스팅도 마찬가지입니다. 저는 여러 이미지를 첨부하지만, 목록에서는 대표하는 이미지 하나만 보여주게 되죠. 장고에서도 이런 썸네일을 지정할 수 있습니다. 장고에서 썸네일을 지정하면 이점이 뭐가 있을까요? 다음과 같은 이점이 있습니다. 1. 파일 용량관리에 유리하다. 2. 파일 분류에 효율적이다. thumbnail 만들기 thumbnail 이라는 새로운 프로젝트를 만들고 thumbnailapp 이라는 이름으로 앱을 만들어주었습니다.(settings 에 등록!) 기본 과정은 생략하도록 하겠습니다. 장고 기본 과정 media..