Tensorflow框架-01

Tensorflow是一个编程系统
使用图(graphs)来计算任务,图中的节点称之为op(operation),一个op获得0个或者多个tensor,执行计算,产生0个或者多个tensor,tensor看作是一个n维的数组或者列表,图必须在会话里被启动。
1 使用图(graphs)来计算任务;
2 在被称之为会话(session)的上下文(context)中执行图;
3 使用tensor表示数据;
4 通过变量(variable)维护状态;
5 使用feed和fetch可以为任意的操作赋值或者从其中获取数据;
6 Tensorflow结构:
Tensorflow框架-01_第1张图片

第一个程序:
****输入:****import tensorflow as tf
m1 = tf.constant([[3,3]]) #创建一个常量op
m2 = tf.constant([[2],[3]]) #创建一个常量op
product = tf.matmul(m1,m2) #创建一个矩阵乘法op,把m1和m2传入 print(product)
输出:Tensor(“MatMul:0”, shape=(1, 1), dtype=int32)

Session:执行命令的东西;
第一个例子: import tensorflow as tf
matrix1 = tf.constant([[3,3]])
matrix2 = tf.constant([[2],[2]])
pronduct = tf.matmul(matrixl1,matrixl2) #matrix multiply np.dot(m1,m2)
#method 1
Sess = tf.Session()
result = sess.run(product)
print(result)sess.close()
第二个例子:with tf.Session() as sess:
result2 = sess.run(product)
print(result2)

使用variable: 要定义变量,和python中不一样。
import tensorflow as tf
state = tf.Variable(0,name=‘counter’)
print(state.name)
one = tf.constant(1)
new_value = tf.add(state , one)
update = tf.assign(state,new_value)
init = tf.initialize_all_variable() #must have if define variable
with tf.Session() as sess:
sess.run(init) for _in range(3):
sess.run(update)
print(sess.run(state))

****使用placeholder:****只能处理float32形式,所以默认float32形式,用这个意思就是在sess.run在给它赋值;import tensorflow as tf input1 = tf.placeholder(tf.float32)input2 = tf.placeholder(tf.float32) output = tf.multiplyl(input1,input2)with tf.Session() as sess: print(sess.run(output,feed_dict={input1:[7.],input2:[2.]}))

激励函数(activation functions)
为什么需要激励函数:为了解决现实生活中不能用线性方程概括的问题。
Linear和Norlinear(线性问题和非线性问题)神经网络:
y=Wx() Y=AF(Wx)
AF:就是激励函数,另外一个非线性方程,强行把线性方程扭成非线性问题。
自己写的激励函数,要会微分,误差反向传递,只要微分才能传递反向误差;不能随便用:会有梯度爆炸和梯度消失的问题。
少量层结构:多种选择。
卷积神经网络:relu。
循环神经网络:relu、tanh 。

Tensorflow:
Tensorflow框架-01_第2张图片
Input:输入层
Layer1:隐藏层
Layer2:第二个隐藏层;激励函数就在此层;把layer1中输入进来得值进行加工,看是不是要被激活,layer2将要输出得值经过一个激励函数,筛选一下,看哪些值要被layer2所激励,继续传递,作为一个预测值。

Predictions:预测值
Cross_entropy:和真实值得对比Tensorflow框架-01_第3张图片

你可能感兴趣的:(TensorFlow)