tensor manipulation
1차원 array
t = np.array([0,1,2,])
pp.print(t)
print(t.ndim)
print(t.shape)
2차원 array
pp.print(t)
print(t.ndim)
print(t.shape)
shape rank axis
t = tf.constant(1,2,3,4)
tf.shape(t).eval()
rank 1
4
t = tf.const 1,2 3, 4
tf.shape(t).eval()
rank 2
2, 2
t = tf.constant ( ~~)
[[[[-> rank : 4
shape ( ? ? ? ?)
4, 3, 2, 1, 순서대로 채워넣는다
axis = 0 가장 바깥 []
axis = -1 가장 안쪽 [] or 이 경우 axis = 3 이랑 같음
matrix1 = tfconstant 1 2 3 4
matrix2 = tf.constant 1 2
print matrix1. shape (2, 2) (2,2)
매트릭스 곱 조심하자.
나온다.
matrix * matrix2 .evl() 다르다.
broadcasting 주의하라
shape 이 같으면 잘 더해지는데
만약 다르더라도 오류 없이 이상하게 계산된다.
1 2 3 더하면 4 5 가 된다
1 2 3 4 더하면 [] 이 이상한데 4 6
reduce_mean 1 2
평균 1.5 인데 1 로 준다
1 2 3 4 거의 다 floating인거 주의하자
axis가 없으면 다 구해서 알려줌 2.5
axis = 0 으로 평균을 구해라 그러면 2 3 (1 3 // 2 4)
axis = 1 이면 1.5 3.5
axis = -1 위랑 같다
보통 가장 안쪽 축 계산하고 평균을 내는 것
argmax
axis = 0 dlaus 1 0 0
인덱스를 돌려준다!! 가장 큰 것의 위치
값이 아니라 위치!
reshape
가장 많이 사용하는 함수
2 2 3 인 shape을 reshape 다른 방식으로 바꾸고 싶다.
그러면
t, shape[-1,3 원하는 shape을 주면 이렇게
squeeze expand 도 있다.
배열들을 한 배열에 넣어주고
dims 디멘션 추가하고 싶을 때 쓰는 expand
one hot
자리만 새까맣게 칠하는 원리 000100 이렇게
one_hot 함수 그대로 사용하면 가능하다.
자세히 보시면 하나를 더 배열 넣어주니까 reshape 사용해서 없앨 수도 있다.
casting 자료형태 바꿔주는 것
stack 쌓는 개념
축에 따라 또 바꿀 수 있다.
ones and zeros like
다 1으로 0으로 채워주는 같은 형태 배열 돌려준다.
마지막으로 zip
복수개의 배열을 한번에 처리하고 싶을 때
'머신러닝,딥러닝 > tensorflow' 카테고리의 다른 글
lec11 CNN basics tensorflow (0) | 2021.01.25 |
---|---|
lec11 ConvNet 의 conv 레이어 만들기 (0) | 2021.01.25 |
lec10 xsigmoid 보다 ReLU가 더 좋아 (0) | 2021.01.24 |
lec09 XOR 문제 딥러닝으로 풀기 (0) | 2021.01.24 |
lec08 deep neural network for everyone (0) | 2021.01.22 |
lec07 learning rate, data preprocessing overfitting (0) | 2021.01.21 |
lec06 multinominal 개념 소개 (0) | 2021.01.21 |
lec05 logistic (regression) classification (0) | 2021.01.19 |