学习笔记

import tensorflow as tf

1.参数的设定

state = tf.Variable(0,name ='name') 

!!! 如果有定义参数必须附带

init = tf.initialize_all_variables()

2.N维矩阵

one = tf.constant(1)

注意:使用的时候必须保持数据格式一致,否则报错,转换数据可通过astype()

>>>

3.会话功能 Sesson

sess = tf.Session()

sess.run(init)            #必须先初始化参数

4.逻辑计算

new_state = tf.add(state,one)

# 算术操作符:+ - * / % 
tf.add(x, y, name=None)        # 加法(支持 broadcasting)
tf.subtract(x, y, name=None)   # 减法
tf.multiply(x, y, name=None)   # 乘法
tf.divide(x, y, name=None)     # 浮点除法, 返回浮点数(python3 除法)
tf.mod(x, y, name=None)        # 取余
 
 
# 幂指对数操作符:^ ^2 ^0.5 e^ ln 
tf.pow(x, y, name=None)        # 幂次方
tf.square(x, name=None)        # 平方
tf.sqrt(x, name=None)          # 开根号,必须传入浮点数或复数
tf.exp(x, name=None)           # 计算 e 的次方
tf.log(x, name=None)           # 以 e 为底,必须传入浮点数或复数
 
 
# 取符号、负、倒数、绝对值、近似、两数中较大/小的
tf.negative(x, name=None)      # 取负(y = -x).
tf.sign(x, name=None)          # 返回 x 的符号
tf.reciprocal(x, name=None)    # 取倒数
tf.abs(x, name=None)           # 求绝对值
tf.round(x, name=None)         # 四舍五入
tf.ceil(x, name=None)          # 向上取整
tf.floor(x, name=None)         # 向下取整
tf.rint(x, name=None)          # 取最接近的整数 
tf.maximum(x, y, name=None)    # 返回两tensor中的最大值 (x > y ? x : y)
tf.minimum(x, y, name=None)    # 返回两tensor中的最小值 (x < y ? x : y)
 
 
# 三角函数和反三角函数
tf.cos(x, name=None)    
tf.sin(x, name=None)    
tf.tan(x, name=None)    
tf.acos(x, name=None)
tf.asin(x, name=None)
tf.atan(x, name=None)   
 
 
# 其它
tf.div(x, y, name=None)  # python 2.7 除法, x/y-->int or x/float(y)-->float
tf.truediv(x, y, name=None) # python 3 除法, x/y-->float
tf.floordiv(x, y, name=None)  # python 3 除法, x//y-->int
tf.realdiv(x, y, name=None)
tf.truncatediv(x, y, name=None)
tf.floor_div(x, y, name=None)
tf.truncatemod(x, y, name=None)
tf.floormod(x, y, name=None)
tf.cross(x, y, name=None)
tf.add_n(inputs, name=None)  # inputs: A list of Tensor objects, each with same shape and type
tf.squared_difference(x, y, name=None)

5.加载

updata = tf.assign(state,new_state)

>>>如果想知道当前state的值,则sess.run(update)

6.传入数据placeholder 

b = tf.placeholder(tf.float32, [None, 1], name='b')
第二个参数值为[None, 1],其中None表示不确定,即不确定第一个维度的大小,第一维可以是任意大小。特别对应tensor数量(或者样本数量),输入的tensor数目可以是32、64…

input1 = tf.placeholder(tf.float32)

input2 = tf.placeholder(tf.float32)

output = tf.mul(input1,input2) # 乘法

sess.run(output,feed_dict={input1:[7.],input2:[2.]})  #当使用Placeholder存入数据,则是跟feed_dict 绑定使用,在run的时候再传入数据

7.激励函数

tf.nn  #

常用  tf.nn.relu   线性(配套:loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1]))    )

tf.nn.softmax 一般用于分类(配套loss = tf.reduce_mean(-tf.reduce_sum(ys*tf.log(prediction),reduction_indices=[1])))

tf.sigmoid

8.添加神经层

def add_layer(inputs,in_size,out_size,activation_function=None):

    Weights = tf.Variable(tf.random_normal(in_size,out_size]))  #权重

    biases = tf.Variable(tf.zeros([1,out_size])+0.1)   #偏移量

    Wx_plus_b = tf.matmul(inputs,Weights)+biases  #矩阵相乘

    if activation_function is None:

        outputs = Wx_plus_b

    else: 

        outputs = activation_function(Wx_plus_b)

    return outputs

xs = tf.palceholder(tf.float32,[None,1])

ys =  tf.palceholder(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])) #误差

train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) #选择优化器,学习效率<1,要做的是减少误差minimize

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

9.准确率

def compute_accuracy(v_xs,v_ys):
    global prediction
    y_pre=sess.run(prediction,feed_dict={xs:v_xs}
    correct_prediction=tf.equal(tf.argmax(y_pre,1),tf.argmax(v_ys,1))
    accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
    result=sess.run(accuracy,feed_dict={xs:v_xs,ys:v_ys})
    return result

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值