tensorflow 学习笔记 之 低阶 API

本文详细介绍了深度学习的处理流程,包括数据定义、模型构建、损失计算及优化参数等关键步骤。通过具体代码示例,展示了如何使用TensorFlow进行神经网络的搭建与训练。

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

处理流程

  1. 定义数据
  2. 定义模型
  3. 计算损失
  4. 训练优化

1.定义数据
tf.placeholder

x = tf.placeholder(tf.float32, [None, 784], name = 'input')
y = tf.placeholder(tf.float32, [None,], name = 'label')

2.定义模型

模型即计算图,各种计算为节点,输入、输出数据(Tensor)为边的图。定义模型,即构造一个图,即定义一些计算节点,并以各节点的输入和输出张量为边,将不同的计算节点连接。

定义节点会加入默认的图中,也可以将节点加入指定的图。

利用tf.layers包下的预定义层,定义网络各个层。一个网络层相当有一个计算操作。

#两全连接层
d1=tf.layers.Dense(units=3)//定义层op
y1 = d1(x)//边x连接两个操作
d2=tf.layers.Dense(units=4)//定义层op
y2 = d2(y1)//边y1连接两个操作 

如果预定义层无法满足要求,可以通过tf.nn包下的各种原始神经网路运算来实现,

w1 = tf.get_variable(
            name = variable_name + '_W1', 
            dtype = tf.float32, 
            shape = [768, 50] 
            )
b1 = tf.get_variable(
            name = variable_name + '_b1', 
            dtype = tf.float32, 
            shape = [50] 
            )
y1 = tf.nn.xw_plus_b(x,w1,b1)//节点
 

w2= tf.get_variable(
            name = variable_name + '_W2', 
            dtype = tf.float32, 
            shape = [768, 50] 
            )
b2 = tf.get_variable(
            name = variable_name + '_b2', 
            dtype = tf.float32, 
            shape = [50] 
            )
y2 = tf.nn.xw_plus_b(y1,w1,b1)//节点

 

还可以借助tf.math包下的各种基本数学运算和linalg包的线性代数运算,来实现各层的运算。

w1 = tf.get_variable(
            name = variable_name + '_W1', 
            dtype = tf.float32, 
            shape = [768, 50] 
            )
b1 = tf.get_variable(
            name = variable_name + '_b1', 
            dtype = tf.float32, 
            shape = [50] 
            )
y1 = tf.math.add(tf.linagl.matmul(x, w1), b1) 
 

w2= tf.get_variable(
            name = variable_name + '_W2', 
            dtype = tf.float32, 
            shape = [768, 50] 
            )
b2 = tf.get_variable(
            name = variable_name + '_b2', 
            dtype = tf.float32, 
            shape = [50] 
            )
y2 =  tf.math.add(tf.linalg.matmul(y1, w2), b2) //节点

3.计算损失

评估预测值

y_ = sess.run(y2,feed_dict={x:input})

优化模型,需要定义损失函数,可以用预定义的损失函数,也可以用基本函数组合来自定义。

loss = tf.losses.mean_squared_error(labels=y, predictions=y_)

4.训练优化参数

TensorFlow 提供了执行标准优化算法的优化器。这些优化器被实现为 tf.train.Optimizer 的子类

optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)

训练,迭代更新参数

for i in range(100):
  _, loss_value = sess.run(train, loss,feed_dict = {x:input,labels:y})
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值