1.tensorflow中关于变量常量的测试学习(每行都有注释)
import tensorflow as tf state=tf.Variable(0,name='counter') #如果定义了变量 一定要用session去执行初始化22222 print(state.name) #将会打印counter one =tf.constant(1) # 定义一个常量 new_value=tf.add(state,one) #用tf中的add去让这两个常量和变量相加 update=tf.assign(state,new_value) #把新值重新赋给state init=tf.initialize_all_variables() #有定义变量一定要用这个 with tf.Session() as sess: #这样就可以在这一段使用session 而且用完会自动释放 sess.run(init) #首先在session中初始化这些变量 for i in range(3): #做三次循环 sess.run(update) #计算后重新赋值 print(sess.run(state))
输出结果:
2.tensorflow中的 placeholder 再开始时 先站位 然后再运行时 从外界传来的值才去使用 每次都用不同的值去代替它
import tensorflow as tf input1= tf.placeholder(tf.float32) #用placeholder去站位第一个input input2= tf.placeholder(tf.float32) output=tf.multiply(input1,input2) #注意老版本中是mul 现在1.8已经抛弃tf.mul变为了 tf.multiply with tf.Session()as sess: print(sess.run(output,feed_dict={input1:[7.],input2:[2.]})) #placeholder是在运行run的时候再去给他输入的值 比如最后一行 用的feed_dict方式去添加数据
输出结果:
3.关于激励函数:让某一部分的神经元先激活起来 然后把激活的这一部分的效应传递到后面一层
每一个activition都有他自己适用的环境 根据环境选择自己的激励函数,在每一层的最后都会有激励函数看看这个神经元是不是应该被激活 被激活到什么程度 或者我需要它输出的时候是一个什么样的形式。
4.添加和定义一个神经层:
def 添加层 定义好一个添加神经层的函数
import tensorflow as tf def add_layer(inputs,in_size,out_size,activation_function=None): #默认没有激励函数就是一个线性函数 直接输出了 你也可以直接定义一个激活函数 Weights=tf.Variable(tf.random_normal([in_size,out_size])) #初试值为随机值时 会比初始化为0的函数 减少误差要快很多 #有in_size行 out_size列的一个权重矩阵 biases=tf.Variable(tf.zeros([1,out_size])+0.1) #类似列表 只有一行 out_size列 初始值不为零所以加一个0.1 biases=0.1 Wx_plus_b=tf.matmul(inputs.Weights)+biases #预测出来的值 还没有被激励 #下面开始激活函数 if activation_function is None: outputs=Wx_plus_b else: outputs=activition_function(Wx_plus_b) return outputs