C library 작성
Python Code 작성
'Coding > Python 삽질기' 카테고리의 다른 글
About Pyscript (0) | 2022.06.10 |
---|---|
[PyTorch] CUDA 설치기 (0) | 2022.02.21 |
생일 문제 (0) | 2021.06.21 |
About Pyscript (0) | 2022.06.10 |
---|---|
[PyTorch] CUDA 설치기 (0) | 2022.02.21 |
생일 문제 (0) | 2021.06.21 |
PyTorch에서 GPU를 사용해보기로 하고, 삽질한 기록을
미래의 나를 위하여, 기록하였습니다.
1. 노트북 그래픽 카드 확인
2. Pytorch 사이트에서 CUDA 버전을 확인한다.
https://pytorch.org/get-started/locally/
PyTorch
An open source machine learning framework that accelerates the path from research prototyping to production deployment.
pytorch.org
PyTorch 1.10.2에 Pip로 CUDA 10.2를 선택하면, 아래에 pip3 명령어가 보인다. 이를 사용하여 pytorch를 설치한다.
3. CUDA library 설치
PyTorch 사이트에서 확인한 CUDA 10.2 버전을 설치한다.
* 간혹 NVIDIA experience가 동작을 안하는 경우에는 아래와 같이
NVIDIA LocalSystem Controller 에서 로컬 시스템 계정 항목을 체크해 준다.
4. 파이썬을 실행해서 확인 해 본다.
[Python] C 함수 호출 하기 (0) | 2022.04.23 |
---|---|
생일 문제 (0) | 2021.06.21 |
[Python/C] 휴대폰 패턴의 가지수 (0) | 2021.02.21 |
인터넷 커뮤티니에서 본 모대학 수학문제를 풀어 보았다.
약간 변경해서, 1^1 + 2^2 + ... + 10000^10000 의 결과 중 끝 50자리를 출력하는 형식으로 바꿔보았다.
from multiprocessing import Pool
import time
MAX_COUNT = 10**50
def mypower(num):
result = 1
for i in range(num):
result = result * num
if result < MAX_COUNT:
continue
result = result % MAX_COUNT
return result
def get_sum(num):
assert num > 0
numbers = [i for i in range(1, num+1)]
assert len(numbers) == num
pool = Pool(processes=4)
return sum(list(pool.map(mypower, numbers))) % MAX_COUNT
if __name__ == '__main__':
start_time = time.time()
print(get_sum(10000))
print(time.time() - start_time)
16026394753230301057223656223127837280816237204500
3.0160417556762695
[Python/C] 휴대폰 패턴의 가지수 (0) | 2021.02.21 |
---|---|
[Python] 폴더 안의 파일 이름 검색하기 (0) | 2020.10.28 |
[Pygame] Paper Plane Game 만들기 (0) | 2020.08.25 |
주말을 이용해 Flappy bird의 clone을 Pygame으로 간단히 구현해 보았다.
전체 소스코드는 아래에서 다운 받을 수 있다
Source code : https://github.com/chobocho/paperplane
chobocho/paperplane
Paper airplane game. Contribute to chobocho/paperplane development by creating an account on GitHub.
github.com
Game file :
1. 기본구조
Source code : https://github.com/chobocho/paperplane
chobocho/paperplane
Paper airplane game. Contribute to chobocho/paperplane development by creating an account on GitHub.
github.com
[Python] 폴더 안의 파일 이름 검색하기 (0) | 2020.10.28 |
---|---|
[Python][AI] XOR 예제 (0) | 2020.08.03 |
[Python][AI] Perceptron 예제 (0) | 2020.07.28 |
아래와 같이 1개의 은닉층을 가진 신경망을 구성해 보았습니다.
import numpy as np
def sigmoid(x):
return 1/(1+np.exp(-x))
def DeltaSGD(W1, W2, X, D):
alpha = 0.9
idx = 0
for k in X:
a1 = np.dot(W1, k)
z1 = sigmoid(a1)
a2 = np.dot(W2, z1)
y = sigmoid(a2)
e = D[idx] - y
delta = y * (1-y) * e
e1 = W2 * delta
delta1 = z1 * (1-z1) * e1
dw1 = alpha * delta1
dw1 = dw1.reshape(4,1)
x = k.reshape(1,3)
W1 += np.dot(dw1, x)
dw2 = alpha * delta * z1
W2 += dw2
idx+=1
def Train(epoch, x, y, W1, W2):
for ep in range (epoch):
DeltaSGD(W1, W2, x, y)
def main():
W1 = np.random.randn(4,3)
W2 = np.random.randn(4)
x = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
y = np.array([0, 1, 1, 0])
trainCount = 10000
print('---Before Training---')
print(W1)
print(W2)
print('---After Training---')
Train(trainCount, x, y, W1, W2)
print(W1)
print(W2)
print('---Result---')
for k in x:
a1 = np.dot(W1, k)
z1 = sigmoid(a1)
a2 = np.dot(W2, z1)
y = sigmoid(a2)
print(y)
if __name__ == '__main__':
main()
---Before Training--- [[-0.82542712 -0.65157477 0.09131077] [-0.12367401 1.07601221 -1.43941252] [-1.00401084 -0.04547823 0.97194216] [ 0.02719329 -0.22932678 -0.45809196]] [ 0.16840571 -0.55206913 1.75255171 -0.54203599] ---After Training--- [[-6.3608461 -6.35976778 2.71126418] [ 3.61918383 3.62562196 -5.65337702] [-3.70117648 -3.70158904 5.76910815] [-1.51981715 -1.56682777 -0.58710802]] [-11.12882426 -6.71646542 6.50908732 -1.52377049] ---Result--- 0.01083108954199271 0.9896067125952175 0.9895881791368779 0.01040259419256147 |
[Pygame] Paper Plane Game 만들기 (0) | 2020.08.25 |
---|---|
[Python][AI] Perceptron 예제 (0) | 2020.07.28 |
[Python] fisher-yates shuffle (0) | 2020.07.20 |
import numpy as np
def sigmoid(x):
return 1/(1+np.exp(-x))
def DeltaSGD(W, X, D):
alpha = 0.9
dwSum = np.array([0] * 3)
idx = 0
for k in X:
a1 = np.dot(k, W)
y = sigmoid(a1)
e = D[idx] - y
delta = y * (1-y) * e
dw = alpha * delta * k
W += dw
idx+=1
def Train(epoch, x, y, W1):
for ep in range (epoch):
DeltaSGD(W1, x, y)
def main():
W1 = np.random.randn(3)
x = np.array([[0, 0, 1], [0, 1, 1], [1, 1, 1], [1, 0, 0]])
y = np.array([1, 1, 1, 0])
Train(10000, x, y, W1)
for k in x:
a1 = np.dot(k, W1)
z1 = sigmoid(a1)
print(z1)
if __name__ == '__main__':
main()
0.9962960119369554 0.9999259998523653 0.9929612087250037 0.010332095384834877 |
[Python][AI] XOR 예제 (0) | 2020.08.03 |
---|---|
[Python] fisher-yates shuffle (0) | 2020.07.20 |
강아지 나이 계산기 (0) | 2020.07.16 |
import random
number = [1, 2, 3, 4, 5, 7, 8]
def shuffle(number):
for i in range (len(number)-1, 0, -1):
j = random.randint(0, i)
number[j], number[i] = number[i], number[j]
shuffle(number)
동작을 보면 아래와 같이 변화 한다
[1, 2, 3, 4, 5, 7, 8]
[1, 8, 3, 4, 5, 7, 2]
[1, 8, 3, 4, 5, 7, 2]
[1, 8, 3, 4, 5, 7, 2]
[1, 8, 3, 4, 5, 7, 2]
[3, 8, 1, 4, 5, 7, 2]
[3, 8, 1, 4, 5, 7, 2]
* 참고: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
[Python][AI] Perceptron 예제 (0) | 2020.07.28 |
---|---|
강아지 나이 계산기 (0) | 2020.07.16 |
[Python] 소인수 분해 (0) | 2020.07.10 |
[ChoboTimer] 타이머 앱 만들기 (0) | 2020.02.29 |
---|---|
Minim / 간단한 메모관리 툴 (SL6) (0) | 2019.12.10 |
Minim / 간단한 메모관리 툴 (SL5) (0) | 2019.12.10 |
떨어져 가는 기억력을 보완하고자,
Python 으로 메모관리 툴을 만들어 보기로 했다.
다운로드: https://chobocho.tistory.com/2461419
소스코드: https://github.com/chobocho/ChoboMemo2
먼저, 아래와 같이 요구사항을 간단히 정리해 보았다.
그리고 이를 바탕으로 간단히 UML을 그려 보았다
완성된 모습은 아래와 같다
ChoboMemo / 간단한 메모관리 툴 (0) | 2019.12.07 |
---|---|
Cornell Note (코넬 노트 앱) (0) | 2019.11.07 |
[Python] 폴더 안의 파일 이름 추출 하기 (0) | 2019.10.29 |
Old version:
최신버전 받기 : https://www.dropbox.com/sh/smh7lsqrfw88t4a/AAAyNAYF0jUZnk6t3xQ_Gl5Ja?dl=0
16분할 메모앱
Source : https://github.com/chobocho/ChoboMemo
Update: 2019.10.10
email parser (0) | 2018.09.12 |
---|---|
Python으로 파일 관리자 만들기 (0) | 2018.05.31 |
hash 함수 sample code (0) | 2018.05.25 |