AI/DeepLearning

딥러닝 3일차

soccerda 2019. 3. 10. 15:44
반응형

선형회귀


경사하강법 (Gradient Descent)

 - 점차적으로 loss 손실 최소화 찾는 방법


실습

# -*- coding: utf-8 -*-

"""

Created on Sun Mar  3 15:19:38 2019


@author: KSM06-05

"""


import numpy as np

import matplotlib.pyplot as plt

import tensorflow as tf


#테스트용 시드 맞추기

np.random.seed(0)


# y=ax+b 기본 선형회귀 기준  a=w

w=5

b=2


x_data=[]

y_data=[]

y_line=[]

for i in range(1000):

    x=np.random.normal(0,1)

    e=np.random.normal(0,5)

    y=w*x+b+e #1차함수

#    y=w*x*x+b+e #2차함수

#    y=w*x*x*x+b+e #3차함수

    y_line.append(w*x+b)

    x_data.append(x)

    y_data.append(y)

#print(x_data)

#각 범주별로 데이터 갯수 그래프

#plt.hist(x_data)

plt.plot(x_data,y_data,'r+')

plt.plot(x_data,y_line)

plt.show()


########################tensorflow

#tf.Placeholder

#tf.Variable



#Model: y=wx+b # w=? b=?

# 추정하고싶은 값을 Variable로 놓고 

# 초기화작업은 uniform 분포화

#-----------------1.변수 초기화-----------------

W=tf.Variable(tf.random_uniform([1],-15,15)) #random_uniform일정한 값으로데이터깔기

b=tf.Variable(tf.zeros([1]))

print("W:",W,"b:",b)

#-----------------2.모델 정의(예측)-------------------

#y=W*x+b

y=W*x_data+b

#-----------------3.손실(차이) 정의 ------------

#loss=y-y_data

#loss=tf.square(y-y_data)

#loss=tf.reduce_sum(tf.square(y-y_data))

loss=tf.reduce_mean(tf.square(y-y_data)) #평균

#----------------4.손실 최소화 방법 선택 ---------

optimizer=tf.train.GradientDescentOptimizer(0.1) #간격

#----------------5. 사용방법 지시 --------------

train_step=optimizer.minimize(loss)


#optimizer=tf.train.GradientDescentOptimizer(0.1).minimize(loss) --으로도 구현 가능


########### 세션 작업 ###########


## 변수 초기화 세션 실행 준비  Variable 가 있을 경우

init=tf.global_variables_initializer() 



sess=tf.Session()

sess.run(init)


#반복

#sess.run(train_step)

#w_=sess.run(W)

#b_=sess.run(b)

#print("W_:",w_,"b_:",b_)

#sess.run(train_step)

#w_=sess.run(W)

#b_=sess.run(b)

#print("W_:",w_,"b_:",b_)


#반복문사용

# 순차적으로 트레이닝

for step in range(50):

    sess.run(train_step)

    w_=sess.run(W)

    b_=sess.run(b)

    print("W_:",w_,"b_:",b_)










https://tensorflowkorea.gitbooks.io/tensorflow-kr/g3doc/tutorials/mnist/beginners/





그래픽 데이터 다룰때 도움되는 툴 xnview, hxd


https://www.xnview.com/en/

https://www.xnview.com/en/xnview/#downloads



헥사에디터

https://mh-nexus.de/en/hxd/



xnview --> Raw image 확인

HxD --> Raw image 코드확인




구글에서 이미지 저장







xnview



1. 사진불러오기

2. 이미지 crop 하기

3. image-resize 가로,세로 중 큰값(28)으로 resize 

4. Canvas-size  Keep radio 해제 가로세로 사이즈 28로 맞춰줌 공백 흰색

5. image-convert to Binary - no Dither

6. 저장 raw image



HxD 





1. 저장한 raw 이미지 불러와서 

2. 위에 저장한 28로 변경 하면 위 캡처하면 나옴.





jupyterLab

 - markdown








크로스앤들로핀





Mnist_tensor.ipynb

Mnist_tensor_gangsa.ipynb

Mnist_nn_tensor.ipynb




plt cmap



반응형