【TensorFlow】基础函数总结

本文详细介绍TensorFlow中的数据定义方法,包括占位符、变量及常数变量的使用;讲解了激活函数、优化方法、损失函数等核心概念;并介绍了卷积、池化等常用操作,适合初学者快速入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据定义

占位符

x = tf.placeholder(dtype=tf.float32,shape)

变量

W = tf.Variable(tf.zeros(shape))

常数变量

tf.Variable(tf.constant(0.1,shape=shape))
tf.zeros(shape,dtype)
tf.ones(shape,dtype)
#生成一个全部为给定数字的数组
tf.fill(shape,number)

随机数

从均匀分布中返回随机值

tf.random_uniform(shape,minval=low,maxval=high,dtype=tf.float32)

返回一个(0,x)之间的整数

np.random.randint(0,x)

正态分布

tf.random_normal(shape,stddev)

截断正态分布

tf.truncated_normal(shape,stddev)

激活函数

Relu激活函数

tf.nn.relu(tf.matmul(x,W1)+b1)

softmax激活函数

 tf.nn.softmax(tf.matmul(hidden1_drop,W2)+b2)

优化方法

随机失活

keep_prob = tf.placeholder(tf.float32)
hidden1_drop = tf.nn.dropout(hidden1,keep_prob)

局部响应归一化

tf.nn.lrn(conv2,4,bias=1.0,alpha=0.001/9.0,beta=0.75)

滑动平均——TensorFlow优化之滑动平均模型

    v1 = tf.Variable(5,dtype=tf.float32)
    #定义一个迭代轮数的变量,动态控制衰减率,并设置为不可训练
    step = tf.Variable(10,trainable=False)
    #定义一个滑动平均类,初始化衰减率为0.99和衰减率的变量step
    ema = tf.train.ExponentialMovingAverage(0.99,step)
    #定义每次滑动平均所更新的列表
    maintain_average_op = ema.apply([v1])
    #初始化上下文会话
    with tf.Session() as sess:
        #初始化所有变量
        init = tf.initialize_all_variables()
        sess.run(init)
        #更新v1的滑动平均值
        '''
        衰减率为min(0.99,(1+step)/(10+step)=0.1}=0.1
        '''
        sess.run(maintain_average_op)
        #[5.0, 5.0]
        print(sess.run([v1,ema.average(v1)]))
        sess.run(tf.assign(v1,4))
        sess.run(maintain_average_op)
        #[4.0, 4.5500002],5*(11/20) + 4*(9/20)

损失函数

交叉熵损失函数

cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y),reduction_indices=[1]))

平方损失函数

cross_entropy = tf.reduce_mean(tf.square(y_-y))

训练器

 tf.train.GradientDescentOptimizer(learning_rate).minimize(cross_entropy)
tf.train.AdagradOptimizer(learning_rate).minimize(cross_entropy)

卷积

stride前后两位通常为1,即[1,x,x,1],‘SAME’表示对数据填充

tf.nn.conv2d(x,W,strides=[1,1,1,1],padding='SAME')

池化

tf.nn.max_pool(x,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME')

其他函数

#argmax()表示返回最大值下标,1代表的是行内比较,0代表列内比较
correct_prediction = tf.equal(tf.argmax(y,1),tf.arg_max(y_,1))
#统计全部样本预测的arruracy,先用tf.cast将之前correct_prediction输出的bool值转换为float32
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))

将不同部分的损失函数累加

tf.add_to_collection('losses',cross_entropy_mean)
#实现各列表元素的对应维度的相加
tf.add_n(tf.get_collection('losses',name='total_loss'))

变量初始化

init_op = tf.initialize_all_variables()
sess.run(init_op)

tf.greater的输入是两个张量,比较张量中每一个元素的大小,并返回比价结果。tf.select判定第一个参数的值,若为True,选择第二个参数的值,否则使用第三个参数的值。

loss_less = 10
loss_more = 1
loss = tf.reduce_sum(tf.select(tf.greater(y,y_),(y-y_)*loss_more,(y_-y)*loss_less))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值