tensorflow连载笔记(三)(变量,placeholder,激励函数,添加层)

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



猜你喜欢

转载自blog.csdn.net/d1242218781/article/details/80595594
今日推荐