tensorflow学习笔记---tensorflow activation function

"""tf.random_normal(shape,mean = 0.0,stddev = 1.0,dtype = tf.float32,seed = None,name = None)

从正态分布输出随机值。

shape:一维整数张量或Python数组。 输出张量的形状。用一个列表表示产出的张量的形状

mean:类型dtype的0-D张量或Python值。正态分布的均值。均值

stddev:dtype类型的0-D张量或Python值。正态分布的标准差。标准差

dtype:输出的类型。数据类型

seed:一个Python整数。 用于为分发创建一个随机种子。 有关行为,请参阅set_random_seed。

name:操作的名称(可选)。

tf.zeros(shape, dtype=tf.float32, name=None)

生成元素值为0的数或数组。

shape:生成维度的形状

dtype:数据的类型

name:名字,参数可选。

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)[source]

start:是采样的起始点

stop:是采样的终点

num:是采样的点个数

endpoint:是最后一个stop数字是否包含进去,默认包含;

retstep;是两个数字间的间距,默认不显示;

dtype默认

tf.reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None)

求平均值

input_tensor:待求值的tensor。

reduction_indices:在哪一维上求解。不指定参数时,那么就在所有的元素中取平均值。为0,每一列求平均值,为1,则第二维的元素取平均值,即每一行求平均值

"""

import tensorflowas tf

import numpyas np

def add_layer(inputs,in_size,out_size,activation_function=None):#添加层函数

    Weights = tf.Variable(tf.random_normal([in_size,out_size]))#随机输出一个行为in_size和列为out_size的数组,weights是有一个初始值的。

    biases = tf.Variable(tf.zeros([1,out_size])+0.1)#产生一个1行,out_size列全为0的数组,数组与元素都加上1?。

    Wx_plus_b = tf.matmul(inputs,Weights) + biases#?

    if activation_functionis None:

outputs = Wx_plus_b

else:

outputs = activation_function(Wx_plus_b)

return outputs

x_data = np.linspace(-1,1,300)[:,np.newaxis]#-1到1的区间有300个单位,np.newaxis为x_data增加维度?

noise = np.random.normal(0,0.05,x_data.shape)#加入干扰值提高数据的真实性,由均值为0,方差为0.05的正态分布中产生一个和x_data一样大的数组

y_data = np.square(x_data) -0.5 + noise#np.square将x_data里的数都进行平方运算。

xs = tf.placeholder(tf.float32,[None,1])#列是1行不定

ys = tf.placeholder(tf.float32,[None,1])#

l1 = add_layer(xs,1,10,activation_function=tf.nn.relu)

prediction = add_layer(l1,10,1,activation_function=None)

loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction),

                reduction_indices=[1]))#先求reduce_sum() 就是求和,

# 由于求和的对象是tensor,所以是沿着tensor的某些维度求和。

# reduction_indices是指沿tensor的哪些维度求和

train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

#tf.train.GradientDescentOptimizer(learingRate).minimize(loss)

#这里learingRate为梯度下降法的学习速率tf.train.GradientDescentOptimizer()返回一个optimizer,

# 参数为learningRate,这个运算的目的就是最小化loss。

init = tf.initialize_all_variables()

sess = tf.Session()

sess.run(init)

for iin range(100):

sess.run(train_step,feed_dict={xs:x_data,ys:y_data})

if i %50 ==0:

print(sess.run(loss,feed_dict={xs:x_data,ys:y_data}))

你可能感兴趣的:(tensorflow学习笔记---tensorflow activation function)