txt file load
with open('ratings_train.txt', "r") as f:
train = f.read()
with open('ratings_test.txt', "r") as f:
test = f.read()
with open('설명.txt',encoding='euc-kr') as f:
설명 = f.read()
csv file load
data = pd.read_csv('data.csv')
colab_google.drive_mount
from google.colab import drive
drive.mount('/content/drive')
file delete
upload_file_path = "/content/drive/MyDrive/project/static/upload/upload/upload.jpg"
if os.path.exists(upload_file_path):
os.remove(upload_file_path)
perceptron 프레임워크
from sklearn.linear_model import Perceptron
X = [ [0,0],[0,1],[1,0],[1,1] ]
y = [ 0,0,0,1 ]
y = [ 0,1,1,1 ]
y = [ 1,1,1,0 ]
p = Perceptron()
p.fit(X,y)
print(p.coef_)
print(p.intercept_)
perceptron def
import numpy as np
def AND(x1,x2):
w1,w2=[1 , 1]
X=np.array([x1,x2])
W=np.array([w1,w2])
b=-1.5
t=np.sum(W*X)+b
if t<= 0:
return 0
else:
return 1
print('AND')
print(AND(0,0))
print(AND(0,1))
print(AND(1,0))
print(AND(1,1))
import numpy as np
def OR(x1,x2):
w1,w2=[1 , 1]
X=np.array([x1,x2])
W=np.array([w1,w2])
b=-0.5
t=np.sum(W*X)+b
if t<= 0:
return 0
else:
return 1
print('OR')
print(OR(0,0))
print(OR(0,1))
print(OR(1,0))
print(OR(1,1))
import numpy as np
def NAND(x1,x2):
w1,w2=[1 , 1]
X=np.array([x1,x2])
W=np.array([w1,w2])
b=-1.5
t=np.sum(W*X)+b
if t<= 0:
return 1
else:
return 0
print('NAND')
print(AND(0,0))
print(AND(0,1))
print(AND(1,0))
print(AND(1,1))
import numpy as np
def XOR(x1,x2):
o1 = NAND(x1,x2)
o2 = OR(x1,x2)
return AND(o1,o2)
print('XOR')
print(XOR(0,0))
print(XOR(0,1))
print(XOR(1,0))
print(XOR(1,1))
perceptron 한 블록 정리
import numpy as np
def AND(x1,x2):
w1,w2=[0.42202853,0.42202853]
X=np.array([x1,x2])
W=np.array([w1,w2])
b=-1.54273328
t=np.sum(W*X)+b
if t<=0:
return 0
else:
return 1
def OR(x1,x2):
w1,w2=[1.0,1.0]
X=np.array([x1,x2])
W=np.array([w1,w2])
b=-0.5
t=np.sum(W*X)+b
if t<=0:
return 0
else:
return 1
def NAND(x1,x2):
w1,w2=[1.0,1.0]
X=np.array([x1,x2])
W=np.array([w1,w2])
b=-1.5
t=np.sum(W*X)+b
if t<=0:
return 1
else:
return 0
def XOR(x1,x2):
o1=NAND(x1,x2)
o2=OR(x1,x2)
return AND(o1,o2)
print("AND")
print(AND(0,0))
print(AND(0,1))
print(AND(1,0))
print(AND(1,1))
print("OR")
print(OR(0,0))
print(OR(0,1))
print(OR(1,0))
print(OR(1,1))
print("NAND")
print(NAND(0,0))
print(NAND(0,1))
print(NAND(1,0))
print(NAND(1,1))
print("XOR")
print(XOR(0,0))
print(XOR(0,1))
print(XOR(1,0))
print(XOR(1,1))
XOR def
import numpy as np
def actf(x):
return 1 / (1 + np.exp(-x))
def actf_deriv(x):
return x * (1 - x)
X = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
y = np.array([[0], [1], [1], [0]])
np.random.seed(5)
inputs = 3
hiddens = 6
outputs = 1
weight0 = 2 * np.random.random((inputs, hiddens)) - 1
weight1 = 2 * np.random.random((hiddens, outputs)) - 1
for i in range(10000):
layer0 = X
net1 = np.dot(layer0, weight0)
layer1 = actf(net1)
layer1[:, -1] = 1.0
net2 = np.dot(layer1, weight1)
layer2 = actf(net2)
layer2_error = layer2 - y
layer2_delta = layer2_error * actf_deriv(layer2)
layer1_error = np.dot(layer2_delta, weight1.T)
layer1_delta = layer1_error * actf_deriv(layer1)
weight1 += -0.2 * np.dot(layer1.T, layer2_delta)
weight0 += -0.2 * np.dot(layer0.T, layer1_delta)
print(layer2)
print(layer2>0.5)
[[0.02391914]
[0.9757925 ]
[0.97343127]
[0.03041428]]
[[False]
[ True]
[ True]
[False]]
XOR deeplearning
import numpy as np
X = np.array([[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
y = np.array([[0], [1], [1], [0]])
from tensorflow import keras
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Flatten , Dense
m = Sequential()
m.add(Flatten(input_shape=(3,)))
m.add( Dense( 6, activation='sigmoid', ) )
m.add( Dense( 1, activation='sigmoid' ) )
m.summary
m.compile(loss = 'binary_crossentropy' , metrics = 'acc')
m.fit(X,y, epochs=5000 )
m.predict(np.array([[0,0,1]]))