본문 바로가기
수업(국비지원)/Python

[Python] Tensortflow

by byeolsub 2023. 4. 27.
'''
Tensorflow 설치
   1. <https://www.microsoft.com/ko-kr> 연결
   2. 다운로드 센터 클릭(<https://www.microsoft.com/ko-kr/download>)
   3.개발자 도구 클릭
   4. 05. Visual Studio 2015용 vISUAL c++ 재배포 가능 선택
   5. 다운로드 클릭
   6. vc_redist.x64.exe 선택 => 다음클릭 => 다운받기
   7. 파일탐색기에서 vc_redict.x64.exe 실행
   8. anaconda prompt를 관리자 모드로 실행
   9. pip install tensorflow 치기
     tensorflow 버전 확인 : 2.11.0
'''

📌

import tensorflow as tf
# .__version__ : 버전 확인 가능
print(tf.__version__) # 2.11.0
# 현재 컴퓨터가 GPU?
tf.config.list_physical_devices("GPU") 
# []로 출력되면 GPU환경이 아님

# 텐서플로를 이용한 AND/OR 게이트 구현
data = np.array([[0,0], [0,1], [1,0], [1,1]])
**label = np.array([[0], [0], [0], [1]]) # 결과데이터 AND**

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import SGD
from tensorflow.keras.losses import mse

model = Sequential() # 딥러닝 모델
'''
 Dense : 밀집층
   1 : 출력값의 개수
   input_shape : 입력값의 개수
   activation : 활성화 함수 알고리즘
      linear : 선형 함수
      sigmoid : 0~1 사이의 값 변형
      relu : 양수인 경우 선형함수, 음수인 경우 0
'''
model.add(Dense(1, input_shape=(2,), activation='linear'))
'''
 compile : 모델 설정. 모형 설정
           기증치 찾는 방법 설정
   optimizer=SGD() : 경사하강법 알고리즘 설정.   
   loss=mse : 손실 힘수. mse : 평균제곱오차.
              mse 값이 가장 적은 경우의 가중치와 평합 구함.
   metrics=['acc'] : 평가 방법 지정. acc : 정확도
      => 손실함수의 값은 적은값. 정확도는 1에 가까운 가중치와 편향의 값을 찾도록 설정           
'''
model.compile(optimizer=SGD(), loss=mse, metrics=['acc'])

# 학습하기
'''
data : 훈련데이터,
label : 정답
epochs=300 : 300번 반복 학습. 손실함수가 적고, 정확도가 높아지도록
verbose=0 : 학습과정 출력 생략
verbose=1 : 학습과정 상세 출력(기본값)
verbose=2 : 학습과정 간략 출력
'''
model.fit(data, label, epochs=300, verbose=0)

print(model.get_weights())
print(model.predict(data))
print(model.evaluate(data,label))

 


 📌

import tensorflow as tf
# .__version__ : 버전 확인 가능
print(tf.__version__) # 2.11.0
# 현재 컴퓨터가 GPU?
tf.config.list_physical_devices("GPU") 
# []로 출력되면 GPU환경이 아님

# 텐서플로를 이용한 AND/OR 게이트 구현
data = np.array([[0,0], [0,1], [1,0], [1,1]])
# label = np.array([[0], [0], [0], [1]]) # 결과데이터 AND
**label = np.array([[0], [1], [1], [1]]) # 결과데이터 OR**

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import SGD
from tensorflow.keras.losses import mse

model = Sequential() # 딥러닝 모델
'''
 Dense : 밀집층
   1 : 출력값의 개수
   input_shape : 입력값의 개수
   activation : 활성화 함수 알고리즘
      linear : 선형 함수
      sigmoid : 0~1 사이의 값 변형
      relu : 양수인 경우 선형함수, 음수인 경우 0
'''
model.add(Dense(1, input_shape=(2,), activation='linear'))
'''
 compile : 모델 설정. 모형 설정
           기증치 찾는 방법 설정
   optimizer=SGD() : 경사하강법 알고리즘 설정.   
   loss=mse : 손실 힘수. mse : 평균제곱오차.
              mse 값이 가장 적은 경우의 가중치와 평합 구함.
   metrics=['acc'] : 평가 방법 지정. acc : 정확도
      => 손실함수의 값은 적은값. 정확도는 1에 가까운 가중치와 편향의 값을 찾도록 설정           
'''
model.compile(optimizer=SGD(), loss=mse, metrics=['acc'])
# 학습하기
'''
data : 훈련데이터,
label : 정답
epochs=300 : 300번 반복 학습. 손실함수가 적고, 정확도가 높아지도록
'''
model.fit(data, label, epochs=300)

print(model.get_weights())
print(model.predict(data))
print(model.evaluate(data,label))

 


📌

import tensorflow as tf
# .__version__ : 버전 확인 가능
print(tf.__version__) # 2.11.0
# 현재 컴퓨터가 GPU?
tf.config.list_physical_devices("GPU") 
# []로 출력되면 GPU환경이 아님

# 텐서플로를 이용한 AND/OR 게이트 구현
data = np.array([[0,0], [0,1], [1,0], [1,1]])
# label = np.array([[0], [0], [0], [1]]) # 결과데이터 AND
# label = np.array([[0], [1], [1], [1]]) # 결과데이터 OR
**label = np.array([[0], [1], [1], [0]]) # 결과데이터 XOR**

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import SGD
from tensorflow.keras.losses import mse

model = Sequential() # 딥러닝 모델
'''
 Dense : 밀집층
   1 : 출력값의 개수
   input_shape : 입력값의 개수
   activation : 활성화 함수 알고리즘
      linear : 선형 함수
      sigmoid : 0~1 사이의 값 변형
      relu : 양수인 경우 선형함수, 음수인 경우 0
'''
model.add(Dense(1, input_shape=(2,), activation='linear'))
'''
 compile : 모델 설정. 모형 설정
           기증치 찾는 방법 설정
   optimizer=SGD() : 경사하강법 알고리즘 설정.   
   loss=mse : 손실 힘수. mse : 평균제곱오차.
              mse 값이 가장 적은 경우의 가중치와 평합 구함.
   metrics=['acc'] : 평가 방법 지정. acc : 정확도
      => 손실함수의 값은 적은값. 정확도는 1에 가까운 가중치와 편향의 값을 찾도록 설정           
'''
model.compile(optimizer=SGD(), loss=mse, metrics=['acc'])

# 학습하기
'''
data : 훈련데이터,
label : 정답
epochs=300 : 300번 반복 학습. 손실함수가 적고, 정확도가 높아지도록
verbose=0 : 학습과정 출력 생략
verbose=1 : 학습과정 상세 출력(기본값)
verbose=2 : 학습과정 간략 출력
'''
model.fit(data, label, epochs=300, verbose=0)

print(model.get_weights())
print(model.predict(data))
print(model.evaluate(data,label))