TF的使用

 

激活函数

 关于激活函数的介绍请参考:激活函数

 这里只是记录TF提供的激活函数

import tensorflow as tf
a = tf.nn.relu( tf.matmul(x, w1) + biases1 )
y = tf.nn.relu( tf.matmul(a, w2) + biases2 )

  

tf.cast

cast(
    x,
    dtype,
    name=None
)
#将x的数据格式转化成dtype.例如,原来x的数据格式是bool, 
#那么将其转化成float以后,就能够将其转化成0和1的序列。反之也可以

import tensorflow as tf
a = tf.Variable([1,0,0,1,1])
b = tf.cast(a,dtype=tf.bool)
sess = tf.Session()
sess.run( tf.global_variables_initializer() )
print(sess.run(b))
#[ True False False  True  True]

 

tf.greater与tf.select连用在自定义损失函数中,注意:tf.select is deprecated since v0.12 and was renamed to tf.where in v1.0 

 在预测商品销量时,预测多了,损失的是成本;预测少了,损失的是利润。比如一个商品成本是1元,利润是10元,少预测一个就少挣10元,而多预测一个则少挣1元。损失函数为:其中x为真实销量,y为预测值

 这样用自定义的损失函数而不是均方误差才能获得最大利润

 

import tensorflow as tf
v1 = tf.constant( [1.0, 2.0, 3.0, 4.0] )
v2 = tf.constant( [4.0, 3.0, 2.0, 1.0] )
 
sess = tf.InteractiveSession()
print(tf.greater(v1, v2).eval())
#[False False  True  True]
 
print(tf.select(tf.greater(v1, v2), v1, v2).eval() )
#[4.  3.  3.  4.]
 
a = tf.constant([10.0])
b = tf.constant( [1.0] )
 
loss = tf.reduce_sum(tf.select(tf.greater(v1, v2), (v1 - v2) * a, (v2-v1) * b) )
print(loss.eval())
#44.0
 
#ft.greater()输入的是两个张量,比较大小,返回真假
#tf.select()有三个参数,第一个为条件,为True时,tf.select会选择第二个参数值,否则会使用第三个参数值

 

posted @ 2018-12-03 08:51  1直在路上1  阅读(427)  评论(0编辑  收藏  举报