tensoflow 2.0 장 량 의 구조 조작 분석 과 정리
그렇게
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)
여기까지 모든 장 량 의 구조 분석 과 정 리 는 여기까지 입 니 다. 아마도 당신 은 나 와 같은 동력 일 것 입 니 다. 아마도 당신 은 솔 질 을 했 을 것 입 니 다. 하지만 양 관계, 언젠가는 당신 이 손 해 를 보고 다시 그들 을 이해 하 게 될 것 입 니 다. 사랑 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
yolov4 목표 탐지 기교 향상증가합니다.cfg 파일의 네트워크 해상도(height=608,width=608 또는 32의 배수)를 사용하면 정밀도를 높일 수 있습니다. 검측할 모든 대상에 대해 훈련 데이터 집합은 최소한 비슷한 대상이 있어야 하며...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.