tensoflow 2.0 장 량 의 구조 조작 분석 과 정리

우리 python 언어 에서 변수의 유형 은 무엇 입 니까?몇 가지 데이터 구조 가 있 습 니까?변수 유형 은 정형, 문자열, 부동 소수점 형, bool 등 이 있 고 데이터 구 조 는 목록, 모듈, 사전 등 이 있 습 니 다.
그렇게
tensor flow 2.0 프레임 워 크 에는 어떤 변수 유형 이 있 습 니까?어떤 데이터 구조 가 있 나 요?
정 답 은...
tensor flow 2.0 에 서 는 하나의 데이터 구조 만 존재 하 는데 이런 데이터 구 조 는 영어 로 tensor 라 고 하고 중국 어 는 장 량 이 라 고 합 니 다.
어떤 사람들 은 하나의 데이터 구조 만 존재 한다 면 누가 사전, 원조, 목록 등 을 표시 하 겠 는가?
정 답 은...
필요 없습니다. tensor flow 2.0 은 데이터 연산 을 할 때 장 량 이라는 데이터 구조 만 사용 하면 됩 니 다.장 량 의 데이터 구 조 는 계산 과 사용 이 편리 하기 때문이다.사전 작업 이 필요 하 다 면 python 언어 에 맡 길 수 있 습 니 다.
장 량 은 많은 정 보 를 저장 할 수 있 고 변화 가 많은 데이터 구조 에 힘 을 기울 일 수 있 습 니 다. 필요 한 방법 이 있 기 때문에 그 차원 은 무한 확장 할 수 있 습 니 다.1 차원 장 량 에 대해 데이터 구 조 는 우리 의 1 차원 목록 과 유사 하 다. 2 차원 장 량 에 대해 데이터 구 조 는 우리 목록 에 포 함 된 목록 과 유사 하 다. 3 차원 장 량 에 대해 데이터 구 조 는 우리 목록 에 포 함 된 목록 의 요소 와 유사 하 다.
그리고 포 인 트 는...
이 목록 의 요소 의 데이터 형식 은 python 의 모든 데이터 형식 일 수 있 습 니 다. 다만 연산 을 편리 하 게 하기 위해 서 입 니 다. 일반 요소 의 데이터 형식 은 정형 또는 부동 소수점 또는 불 형 일 뿐 다른 유형 이 라 고 생각 하지 마 세 요.
좋 습 니 다. 그렇게 많은 양 을 말 했 는데, 우 리 는 어떻게 장 량 을 만들어 야 합 니까?장 량 의 본질 을 알 게 되면 장 량 의 값 은 당연히 만 들 때 초기 화 할 수 있 고 만 든 후에 초기 화 되 지 않 고 요소 의 유형 과 장 량 의 데이터 구조 만 지정 할 수 있 습 니 다. 그때 우리 가 사용 하고 싶 을 때 지정 한 요소 유형 과 데이터 구조 shape 에 따라 값 을 전달 하면 됩 니 다.
그 다음 에 만 든 장 량 이 초기 화 된 후에 이런 값 이 바 뀔 수 있 습 니까? 만약 에 바 뀔 수 있다 면 우 리 는 이런 장 량 을 가 변 장 량 이 라 고 부 르 고 변 수 를 줄 입 니 다. 만약 에 바 꿀 수 없다 면 우 리 는 이런 장 량 을 변 하지 않 는 장 량 이 라 고 부 르 고 상수 라 고 부 릅 니 다.변 하지 않 는 장 량 과 가 변 장 량 의 생 성 은 다 르 지만 사실은 두 개의 서로 다른 함수 일 뿐이다.
import tensorflow as tf

#       
a = tf.constant(value=2, dtype=tf.float32, shape=(2, 3), name='Const1')
"""
    :
tf.Tensor(
[[2. 2. 2.]
 [2. 2. 2.]], shape=(2, 3), dtype=float32)
      shape     ,         value     
"""

b = tf.constant(value=5)
"""
     dtype shape,    tensor  value      dtype shape
tf.Tensor(5, shape=(), dtype=int32), 
shape=(),      
shape=(6,),          ,        6   ,shape       ,           ,           ,             
shape=(28, 28, 3),       ,         28   ,         28   ,         3   ,
"""
print(a)
print(b)
#    constant     ,                 ,   ,      ,                 

다른 한편, 자주 사용 하 는 측면 도 있 는데 그것 이 바로 무 작위 분포 데 이 터 를 만 드 는 것 이다. 코드 분석 을 보면
import tensorflow as tf

#       
a = tf.random.uniform(shape=(5, 3), minval=0, maxval=1, dtype=tf.float32, name='a1')
"""
        ,          :https://baike.baidu.com/item/%E5%9D%87%E5%8C%80%E5%88%86%E5%B8%83/954451?fr=aladdin
"""
print(a)
b = tf.random.normal(shape=(5, 3), mean=0.0, stddev=1.0, dtype=tf.float32, seed=1.0, name='b')
"""
          , mean=0.0, stddev=1.0,          
https://baike.baidu.com/item/%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83/829892?fr=aladdin
"""
print(b)

c = tf.random.truncated_normal((5, 5), mean=0.0, stddev=1.0, dtype=tf.float32, name="c")
"""
          , mean=0.0, stddev=1.0,   2sigma  
  sigma     :https://zhidao.baidu.com/question/1994458617275793107.html
"""

print(c)


지금부터 가 변 장 량 을 만 드 는 방법 을 설명 합 니 다. 코드 설명 을 보고 코드 설명 을 보고 코드 설명 을 봅 니 다.
import tensorflow as tf

a = tf.Variable(initial_value=tf.random.truncated_normal(shape=(2,)))
"""
           ,                ,      ,      

"""
print(a)

\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\# * 나 는 분할 선\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\# #\#\# #\# #\# #\# 다음은 장 량 의 절편 조작 을 소개 하 는데 사실은 장 량 이 가장 예술 적 인 행 위 는 절편 행위 이다.너 는 모든 완전한 데 이 터 를 하나의 장 량 안에 저장 한 후에 사용 할 때 필요 한 것 을 조금 만 꺼 내 면 된다. 이런 본질 은 장 량 이 강 한 기능 을 부여 한다.
그럼.
어떻게 장 량 에 대해 절편 조작 을 합 니까?우 리 는 먼저 극단 적 인 상황 을 살 펴 보 자. 바로 내 가 하나의 요 소 를 잘라 내야 한 다 는 것 이다. 이런 것 을 우 리 는 색인 이 라 고 부른다. 우리 가 하나의 요소 만 필요 로 하 는 것 이 아니 라 우 리 는 절편 이 라 고 부른다.
색인 은 어떻게 된 겁 니까?다음 코드 분석 을 보십시오.
import tensorflow as tf

a = tf.Variable(initial_value=tf.random.truncated_normal(shape=(3, 3, 3), seed=1.0))
"""

"""
#         
b = a[0, 0, 0]  # tf.Tensor(-0.8113182, shape=(), dtype=float32)       
c = a[0, 0, 1]  # tf.Tensor(1.4845988, shape=(), dtype=float32)       
d = a[0, 0, 2]  # tf.Tensor(0.06532937, shape=(), dtype=float32)       

#             ,   ,            ?         ,           。              
e = a[0, 0, 0:3]  # tf.Tensor([-0.8113182   1.4845988   0.06532937], shape=(3,), dtype=float32)

#       :   ,          ,0:3    0、1、2    ,    # #                 ,               ,          
print(e)

\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\# * 나 는 분할 선\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\#\# #\#\#\# #\#\# #\# #\# # #\# 다음은 차원 변 화 를 분석 하고 코드 주석 분석 을 보고 코드 주석 분석 을 보고 코드 주석 분석 을 분석 하고 코드 주석 분석 을 본다.
import tensorflow as tf

a = tf.Variable(initial_value=tf.random.truncated_normal(shape=(3, 3, 3), seed=1.0))
b = tf.reshape(tensor=a, shape=(27,))
"""
              ,                    ,       
b = tf.Tensor(
[-0.8113182   1.4845988   0.06532937  0.0992484   0.6396971   1.6108712
  0.16353562 -1.5157056   1.3587774   0.5417414  -0.86009884 -0.0040246
  0.55171245 -0.13107552 -0.04481387  0.6709832  -0.20888524  0.00542188
  0.31266254  0.5998527  -0.36332107 -0.07205155 -0.5527937   0.10289733
 -0.67590594  0.2866583   0.3215887 ], shape=(27,), dtype=float32)
"""
#       
c = tf.reshape(b, (27, 1))
"""
c = tf.Tensor(
[[-0.8113182 ]
 [ 1.4845988 ]
 [ 0.06532937]
 [ 0.0992484 ]
 [ 0.6396971 ]
 [ 1.6108712 ]
 [ 0.16353562]
 [-1.5157056 ]
 [ 1.3587774 ]
 [ 0.5417414 ]
 [-0.86009884]
 [-0.0040246 ]
 [ 0.55171245]
 [-0.13107552]
 [-0.04481387]
 [ 0.6709832 ]
 [-0.20888524]
 [ 0.00542188]
 [ 0.31266254]
 [ 0.5998527 ]
 [-0.36332107]
 [-0.07205155]
 [-0.5527937 ]
 [ 0.10289733]
 [-0.67590594]
 [ 0.2866583 ]
 [ 0.3215887 ]], shape=(27, 1), dtype=float32)
"""
print(c)

또한 배 워 야 할 함 수 는 tf. transpose 입 니 다. 장 량 의 차원 을 교환 할 수 있 습 니 다. 아래 코드 설명 을 보십시오.
import tensorflow as tf

a = tf.Variable(initial_value=tf.random.truncated_normal(shape=(32, 28, 28, 3), seed=1.0))
b = tf.transpose(a=a, perm=(1, 2, 3, 0))  #               
print(a.shape)  # (32, 28, 28, 3)
print(b.shape)  # (28, 28, 3, 32)


# #\# # # #\# # # #\# # #\# # #\# #\# # #\# # # #\# # #\# # # #\# # # #\# # #\# # # #\# # #\# # #\# # #\# # # # #\# # # # #\# # # #\# # # # # #\# # # # # # #\# # # # # #\# # #\# # #\# #\# #\# #\# #\# #\# #\# # #\# # # #\# # #\# # # # #\# # # # # #\# # # # #\# # # #\# # # # # #\# # # # # #\# # # # #\# # # # # # # # # # # 통합 을 하 는 것 은 장 량 을 통합 하 는 작업 이다.이런 조작 은 주로 두 가지 가 있 는데 하 나 는 concat 이 고 차원 을 증가 하지 않 습 니 다. 아래 코드 주석 분석 을 보십시오.
import tensorflow as tf

a = tf.constant([[1.0, 2.0], [3.0, 4.0]])  # (2, 2)
b = tf.constant([[5.0, 6.0], [7.0, 8.0]])  # (2, 2)
c = tf.constant([[9.0, 10.0], [11.0, 12.0]])  # (2, 2)

d = tf.concat(values=[a, b, c], axis=0)  #            
e = tf.concat(values=[a, b, c], axis=1)  #            
print(d)
print(e)
"""
tf.Tensor(
[[ 1.  2.]
 [ 3.  4.]
 [ 5.  6.]
 [ 7.  8.]
 [ 9. 10.]
 [11. 12.]], shape=(6, 2), dtype=float32)
tf.Tensor(
[[ 1.  2.  5.  6.  9. 10.]
 [ 3.  4.  7.  8. 11. 12.]], shape=(2, 6), dtype=float32)
"""


또 하 나 는 쌓 아 올 리 면 차원 이 높 아 지 므 로 아래 코드 분석 을 살 펴 보 자.
import tensorflow as tf

a = tf.constant([[1.0, 2.0], [3.0, 4.0]])  # (2, 2)
b = tf.constant([[5.0, 6.0], [7.0, 8.0]])  # (2, 2)
c = tf.constant([[9.0, 10.0], [11.0, 12.0]])  # (2, 2)

d = tf.stack(values=[a, b, c], axis=0)  #      0  ,          (  )
e = tf.stack(values=[a, b, c], axis=1)  #      1  ,          
i = tf.stack(values=[a, b, c], axis=2)  #      2  ,          
print(d)
print(e)
print(i)

여기까지 모든 장 량 의 구조 분석 과 정 리 는 여기까지 입 니 다. 아마도 당신 은 나 와 같은 동력 일 것 입 니 다. 아마도 당신 은 솔 질 을 했 을 것 입 니 다. 하지만 양 관계, 언젠가는 당신 이 손 해 를 보고 다시 그들 을 이해 하 게 될 것 입 니 다. 사랑 합 니 다.

좋은 웹페이지 즐겨찾기