1_Tensor_Learn_OPS_1

1. 基本概念

tensorflow不仅是一个软件库,还包括Tensorflow,Tensorboard,TensorServing;

  • Tensorflow中constants,variables,operators 称为:ops;

1.1 Constant op

tf.constant(value, dtype=None, shape=None, name='Const', verify_shape=False)

# constant of 1d tensor (vector)
a = tf.constant([2, 2], name="vector")

# constant of 2x2 tensor (matrix)
b = tf.constant([[0, 1], [2, 3]], name="matrix")

创建 类似numpy的结构

tf.zeros(shape, dtype=tf.float32, name=None)
# create a tensor of shape and all elements are zeros
# ==> [[0, 0, 0], [0, 0, 0]]
tf.zeros([2, 3], tf.int32) 

创建类似·input_tensor·的shape和type(除非指定)但是元素全部为0:

tf.zeros_like(input_tensor, dtype=None, name=None, optimize=True)

# input_tensor [[0, 1], [2, 3], [4, 5]]
tf.zeros_like(input_tensor)  #==> [[0, 0], [0, 0], [0, 0]]
  • 创建一个tensor,所有元素都为1
    `
    tf.ones(shape.dtype = tf.float32 , name = None)

tf.ones([ 2 , 3 ], tf . int32 )

#==> [[ 1 , 1 , 1 ], [ 1 , 1 , 1 ]]
`

  • 创建一个类似input_tensor的shape结构,数据type可以自定义,所有元素为1;

  • 创建一个tensor ,并且使用一个标量填充;

  • 创建一个连续constant,包含start和stop;

  • 从一个数开始创建一个constant 序列,但是不包括最后limit数;

  • 但是,tensor不支持python的迭代器属性:

  • tensorflow的随机生成:


1.2 math ops

1.2.1 division

1.2.2 add

1.2.3 product

tf.matmul 不等于dot product:

1.2.4 ops in Python

1.3 Data Type

1.3.1 python type

  • tensorflow 适配python原始类型:
    • python中的single value(boolean,numeric value,strings) => 0-d tensor(scalars)
    • list : 1-d tensor
    • list of list : 2-d tensor

等等;

例如:

1.3.2 tensor type

1.3.3 numpy Type

  • tensor 的type基于numpy的type,因此例如 tf.int32 == np.int32 返回true;
    在tensor中可以传递numpy的type:

1.tensor 和numpy的boolean,numeric value相互匹配;但是string不是完全匹配,tf能够导入numpy strings,只是不要指定numpy的dtypes;

2.numpy 不支持gpu,tensorflow 支持;

3.tensorflow能够推断数据类型状态:如integer: tf中有:8-bit,16-bit,32-bit,64bit可用,但是python不能推断使用的那种数据类型