[Tensorflow 2.0] 기초 사용법

Load Packages

1
2
import numpy as np
import tensorflow as tf

Tensor 생성

list -> Tensor

1
2
3
4
tf.constant([1, 2, 3])

# Out
<tf.Tensor: shape=(3,), dtype=int32, numpy=array([1, 2, 3])>

tuple -> Tensor

1
2
3
4
5
6
tf.constant(((1, 2, 3), (1, 2, 3)))

# Out
<tf.Tensor: shape=(2, 3), dtype=int32, numpy=
array([[1, 2, 3],
[1, 2, 3]])>

Array -> Tensor

1
2
3
4
5
arr = np.array([1, 2, 3])
tf.constant(arr)

# Out
<tf.Tensor: shape=(3,), dtype=int32, numpy=array([1, 2, 3])>

Tensor에 담긴 정보 확인

shape 확인

1
2
3
4
5
tensor = tf.constant(arr)
tensor.shape

# Out
TensorShape([3])

Data Type 확인

  • 주의: Tensor를 생성 할 때 Data Type을 정해주지 않기 때문에 혼동이 올 수 있다.
  • Data Type에 따라 모델의 무게나 성능 차이에 영향을 줄 수 있다.
1
2
3
4
tensor.dtype

# Out
tf.int32

Data Type 정의

1
2
3
4
tf.constant([1, 2, 3], dtype=tf.uint8)

# Out
<tf.Tensor: shape=(3,), dtype=uint8, numpy=array([1, 2, 3], dtype=uint8)>

Data Type 변환

1
2
3
4
tf.cast(tensor, dtype=tf.uint8)

# Out
<tf.Tensor: shape=(3,), dtype=uint8, numpy=array([1, 2, 3], dtype=uint8)>

Tensor에서 Numpy 불러오기

1
2
3
4
tensor.numpy()

# Out
array([1, 2, 3])

Numpy로 변환된 것 확인

1
2
3
4
type(tensor.numpy())

# Out
numpy.ndarray

난수 생성

Numpy에서는 난수 생성 시 기본적으로 Normal Distribution을 생성한다.

  • Normal Distribution은 중심 극한 이론에 의한 연속적인 모양
  • Uniform Distribution은 중심 극한 이론과는 무관하며 불연속적이며 일정한 분포

Numpy에서 사용법

1
2
3
4
5
np.random.randn(9)

# Out
array([ 0.53020669, 0.65508422, -0.59177912, 1.16459962, -1.05122869,
0.08080872, 0.17245994, 0.08721459, -0.69788519])

TensorFlow에서 사용법

1
2
3
4
5
6
7
tf.random.normal([3, 3])

# Out
<tf.Tensor: shape=(3, 3), dtype=float32, numpy=
array([[ 0.46394104, -0.8973731 , -0.1977468 ],
[-1.6685097 , -0.8181516 , -1.8963411 ],
[ 0.5654544 , 0.13616897, -1.7370273 ]], dtype=float32)>
1
2
3
4
5
6
7
tf.random.uniform([3, 3])

# Out
<tf.Tensor: shape=(3, 3), dtype=float32, numpy=
array([[0.7996844 , 0.05048668, 0.7060809 ],
[0.9390234 , 0.29056323, 0.33341527],
[0.4387114 , 0.13688791, 0.12659645]], dtype=float32)>
Share