이 데이터 구조는 모든 데이터를 나타내는 TensorFlow 텐서. 당신은 텐서 차원 N 배열 또는리스트 생각할 수있다. 텐서 정적 유형 및 동적 유형의 치수를 갖는다. 텐서 도면 수있다 노드 간 통신은. 사실, 텐서를보다 잘 나타내는 다차원 배열의 일종이다.
계급
TensorFlow 시스템에서 치수 텐서 수가 1로 설명 될 수 있지만, 순서는 텐서 행렬과 동일한 개념 순서 아니다. 텐서 순서 (때로는 질서도 또는 N- 차원 상)을 텐서 치수 다수의 숫자의 설명. 예를 들어, (파이썬리스트를 사용하여 정의) 다음 텐서 두번째 순서이다.
t = [1, 2, 3], [4, 5, 6], [7, 8, 9]
당신은 2 차 텐서 매트릭스 생각할 수있는 것은 우리가 일반적으로 1 차 텐서는 벡터로 간주 될 수있다, 말하는 것입니다.
계급 | 수학의 예 | 파이썬 | 예 |
---|---|---|---|
0 | 스칼라 | (만 크기) | S = 483 |
1 | 벡터 | (크기 및 방향) | V = [1.1, 2.2, 3.3] |
이 | 매트릭스 | (데이터 시트) | m = [1, 2, 3], [4, 5, 6], [7, 8, 9] |
삼 | 3 차 텐서 | (입체 데이터) | t = [[[2], [4], [6], [8], [10], [12], [14], [16], [18]] |
엔 | N 순서 | (자신에 대해 생각) | .... |
데이터 유형
텐서는 데이터 유형이이 데이터 유형의 다음과 같은 유형을 지정할 수 있습니다 속성 텐서이다 있습니다 :
데이터 유형 | 파이썬 유형 | 기술 |
---|---|---|
DT_FLOAT | tf.float32 | 32 비트 부동 소수점 숫자. |
DT_DOUBLE | tf.float64 | 64 비트 부동 소수점 숫자. |
DT_INT64 | tf.int64 | 64 비트 정수를 체결했다. |
DT_INT32 | tf.int32 | 32 비트 정수를 체결했다. |
DT_INT16 | tf.int16 | 16 비트 정수를 체결했다. |
DT_INT8 | tf.int8 | 8 비트 정수를 체결했다. |
DT_UINT8 | tf.uint8 | 8 비트 부호없는 정수. |
DT_STRING | tf.string | 바이트의 가변 길이 배열. 각 텐서 소자 바이트의 어레이이다. |
DT_BOOL | tf.bool | 부울. |
DT_COMPLEX64 | tf.complex64 | 현실과 상상 : 복잡한 두 개의 32 비트 부동 소수점 숫자로 구성된 구성되어 있습니다. |
DT_QINT32 | tf.qint32 | 32 비트 정수를 양자화 옵스. |
DT_QINT8 | tf.qint8 | 8 비트 양자화 옵스는 정수를 체결했다. |
DT_QUINT8 | tf.quint8 | 8 비트 부호없는 정수를 양자화 옵스. |
여러 유형의 데이터에 대한 다음 tensorflow 작동 :
참고 세번째 벡터 이상의 동작 : 분할 (분할)
tf.zeros (형상, DTYPE = tf.float32 이름 = 없음)
tf.zeros_like (텐서 DTYPE = 없음, 이름 = 없음)
tf.ones (형상, DTYPE = tf.float32 이름 = 없음)
tf.ones_like (텐서, DTYPE = 없음, 이름 = 없음
tf.fill (희미, 값 이름 = 없음) 텐서 값의 형태를 생성하고 희미하게 채우는
tf.constant (값 DTYPE = 없음, 형상 = 없음, 이름 = '헌장')는 상수 텐서를 생성한다.
임의의 텐서 만들기
tf.random_normal (평균 형상 = 0.0, STDDEV = 1.0 DTYPE = tf.float32 종자 = 없음, 이름 = 없음)
구성된 행렬 정규 분포, 정규 분포로부터 무작위 난수 값 출력
tf.truncated_normal (평균 형상 = 0.0, STDDEV = 1.0 DTYPE = tf.float32 종자 = 없음, 이름 = 없음)
랜덤 값을 출력하고, 절단 된 정규 분포로서 tf.random_normal ()가 아닌 모든 숫자 개 이상의 표준 편차
tf.random_shuffle (값 시드 = 없음, 이름 = 없음)
첫 번째 차원을 따라 랜덤 화
tf.set_random_seed (씨앗)
도 난수 초기 설정 단계
모양 및 변환
형상 결정 텐서 텐서의 형상을 변경하는 데 사용될 수있다
-
tf.shape(input, name=None)
-
tf.size(input, name=None)
-
tf.rank(input, name=None)
-
tf.reshape(tensor, shape, name=None)
-
tf.squeeze(input, squeeze_dims=None, name=None)
-
tf.expand_dims(input, dim, name=None)
t = tf.placeholder(tf.float32,[None,2])
张量复制与组合
-
tf.identity(input, name=None)
-
tf.tuple(tensors, name=None, control_inputs=None)
-
tf.group(inputs, *kwargs)
-
tf.no_op(name=None)
-
tf.count_up_to(ref, limit, name=None)
逻辑运算符
-
tf.logical_and(x, y, name=None)
-
tf.logical_not(x, name=None)
-
tf.logical_or(x, y, name=None)
-
tf.logical_xor(x, y, name='LogicalXor')
比较运算符
-
tf.equal(x, y, name=None)
-
tf.not_equal(x, y, name=None)
-
tf.less(x, y, name=None)
-
tf.less_equal(x, y, name=None)
-
tf.greater(x, y, name=None)
-
tf.greater_equal(x, y, name=None)
-
tf.select(condition, t, e, name=None)
-
tf.where(input, name=None)
判断检查
-
tf.is_finite(x, name=None)
-
tf.is_inf(x, name=None)
-
tf.is_nan(x, name=None)
-
tf.verify_tensor_all_finite(t, msg, name=None) 断言张量不包含任何NaN或Inf
-
tf.check_numerics(tensor, message, name=None)
-
tf.add_check_numerics_ops()
-
tf.Assert(condition, data, summarize=None, name=None)
-
tf.Print(input_, data, message=None, first_n=None, summarize=None, name=None)。
运行注意
import os os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
实例代码:
import tensorflow as tf import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' a = tf.constant(2) # 0维() 一维(4) 二维(2,3) 三维(2,3,4) # with tf.Session() as sess: # print(a.shape) # print(a.op) # print(a.name) b = tf.placeholder(tf.float32,[None,2]) print(b) b.set_shape([3,2]) print(b) # 一旦静态形状已经固定则不能设置了 # b.set_shape([3,2]) ValueError # 下面是动态修改,就是生成一个和原来数据的元素数量匹配的新的 c = tf.reshape(b,[2,3]) print(c)