TensorFlow 노트 - 구성 요소

 

텐서

이 데이터 구조는 모든 데이터를 나타내는 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)

 

추천

출처www.cnblogs.com/TimVerion/p/11224106.html