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 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
Game file :
1. 기본구조
Source code : https://github.com/chobocho/paperplane
[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 |