Tensorflow在设计之时就参考了很多numpy的设计理念,二者有很多相似之处。不妨借助numpy,认识下Tensorflow
Numpy初识
第一段代码
# 引入numpy库
>>> import numpy as np
# 创建一维数组,并且获得其属性
>>> vector = np.array([1,2,3])
>>> vector.shape
(3,)
>>> vector.size
3
>>> vector.ndim
1
>>> type(vector)
<class 'numpy.ndarray'>
# 创建二维数组,并获得其属性
>>> matrix = np.array([[1,2],[3,4]])
>>> matrix.shape
(2, 2)
>>> matrix.size
4
>>> type(matrix)
<class 'numpy.ndarray'>
在numpy中可以通过np.array创建一个多维的数组,并可以利用之进行运算。
例如:
>>> one =np.arange(12)
>>> one
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> one.reshape((3,4))
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
使用np.arange方法构造一个数组,可以使用reshape方法,将一维数组,变换为三行四列的矩阵。
numpy还有一些其他操作,如生成全零矩阵,或者生成对角线矩阵。更高阶用法参考官方教程。
>>> zeros = np.zeros((3,4))
>>> zeros
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
>>> ones = np.ones((5,6))
>>> ones
array([[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1., 1.]])
>>> ident = np.eye(4)
>>> ident
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
Tensorflow:Hello World!
Tensorflow中有多种数据类型,诸如tf.float32等。
创建常量:
>>> import tensorflow as tf
>>> const = tf.constant(3)
>>> const
<tf.Tensor: id=0, shape=(), dtype=int32, numpy=3>
只有创建会话才会有运算结果,关于Tensorflow的会话,后面再说。
创建变量:
>>> var = tf.Variable(3)
>>> var
<tf.Variable 'Variable:0' shape=() dtype=int32, numpy=3>
在Tensorflow的返回值中可以观察到变量和常量的各种属性。