❓ Tensor ?
- 텐서란 데이터의 배열이라고 볼 수 있다.
- Rank는 몇 차원의 배열인지를 나타낸다.
- Type 은 텐서의 데이터 타입을 나타낸다.
- Shape 은 배열의 모양을 나타낸다 => ex) shapes 이 [3,4] 혹은 (3,4) 이라면 요소가 3개인 배열이 4개 있는 모양의 배열을 뜻한다.
❓ TensorFlow
- 텐서플로우는 다양한 작업에 대해 데이터 흐름 프로그래밍을 위한 오픈소스 소프트웨어 라이브러리
- 즉, 기계학습 라이브러리
❓ TensorFlow의 Data Flow Graph
- Node는 연산을 나타낸다.
- Edge는 노드와 노드를 연결하며 데이터흐름을 나타낸다.
- Tensor 엣지들을 따라서 각 노드들의 사이를 이동하는 값이며 다차원 배열이다.
❗ TensorFlow 설치
1. Python 3.7 설치
파이썬이 이미 설치되어 있다면 3.5~3.7버전인지 확인하자!
2. TensorFlow 설치
cmd 관리자 권한으로 들어간 후
pip install --upgrade tensorflow 를 입력해보았으나 액세스 거부 ! ㅠ
=> python -m pip install --upgrade pip 입력하여 pip 재설치 된것을 알수 있다.
=> pip install --upgrade tensorflow 입력하여 좌라라락 나오더니 설치가 success 되었다.
=> 파이썬 IDEL을 통해서 tensorflow가 정상적으로 설치 되었음을 확인했다.
❗ VS Code에서 간단한 프로그램 실행해보기
1. VS Code에서 아무 파일이나 만들기
2. hello, tensorflow 를 출력하는 코드 입력
import tensorflow as tf
hello = tf.constant("hello, tensorflow!")
sess = tf.Session()
print(sess.run(hello))
에러가 난다..
내가 배우고 있는 강좌의 tensorflow는 버전이 1.x.x 인데
내가 깐 tensorflow에 버전은 2.8.0
2.0.0 버전 이후의 tensorflow는 session 객체를 만들고 run 하는 과정이 생력되었다.
그럼 이거 어떻게 실행시키지..?
import tensorflow as tf
hello = tf.constant("hello, tensorflow!")
print(hello)
이렇게만 입력했더니 tf.Tensor(b'hello, tensorflow!', shape=(), dtype=string) 이런식으로 tensor의 정보가 나온다.
import tensorflow as tf
hello = tf.constant("hello, tensorflow!")
tf.print(hello)
와오 굳잡!
❗ Placeholder
import tensorflow as tf
a = tf.placeholder(tf.float32) #값을 미리 지정하지 않는다.
b = tf.placeholder(tf.float32)
adder_node=a+b #a와 b를 더하는 노드
tf.print(adder_node,feed_dict={a:1, b:2})
AttributeError: module 'tensorflow' has no attribute 'placeholder'
쩬짱! 2.0.0 이상부터는 placeholder 도 사용할수 없게 되었다..
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
a = tf.placeholder(tf.float32) #값을 미리 지정하지 않는다.
b = tf.placeholder(tf.float32)
adder_node=a+b #a와 b를 더하는 노드
tf.print(adder_node,feed_dict={a:1, b:2})
=> compatibility mod 를 적용해 1.x 버전의 기능을 그대로 사용하기로 하였으나 뭐시기 뭐시기 warning 이 뜨고 결과는출력해주지 않는다.. 아마 버전 문제인거 같다 제대로 실행이 되지 않는다.. ㅠㅠ
그래서 텐서플로우 1.x.x 버전을가져와서 쓰는것이 아니라 2.x.x 버전에 맞게 사용하기로 하였다.
import tensorflow as tf
a = tf.Variable(tf.zeros(shape=([1])))
b = tf.Variable(tf.zeros(shape=([1])))
@tf.function
def add(a,b) :
return a+b
out_a = add(1,2)
tf.print(out_a)
tf.zeros는 모든 원소의 값이 0인 텐서를 생성한다는 것이고
tf. function을 정의하여 실행시키도록 하였다.
a,b에 미리 지정된 값을 넣어두지 않고 연산을 사용할때 값을 넣는 것이 포인트 였기 때문에 성공 했다고 본다..
애썻다 힝 ㅠ
'Programming > Deep Learning' 카테고리의 다른 글
[모두를 위한 딥러닝] Linear Regression (0) | 2022.04.07 |
---|---|
[모두를 위한 딥러닝] 머신러닝과 Supervised/Unsupervised learing (0) | 2022.04.05 |