概述
本文以一个简单的例子来说明TensorFlow在神经网络中的使用方式。基本思路为如何在TensorFlow提供的框架下,找到使得cost function最小的相关参数。
本模型的cost fucntion为:
一、import相关package
TensorFlow相关的包就是tensorflow,通常简用为tf
# import packages
import numpy as np
import tensor flow as tf
二、参数初始化
函数 tf.variable() 用于参数初始化,此处将w初始化为0。注意我们将需要tune的所有参数按照这个形式初始化。
# define the parameters
# tf.variable(initial value, type)
w = tf.variable(0, dtype = tf.float32)
三、确定最优化算法
# optimization algorithm: tf.keras.optimizer.Adam(learning rate)
# Adam Algorithm
optimizer = tf.keras.optimizer.Adam(0.1)
四、Cost Function
根据已给的形式显式定义即可。
注意TensorFlow中之需要定义forward propagation中的式子,利用 tf.GradientTape 就可以自动完成 backpropagation。tape会自动记住foward propagation时的operation序列,在进行backpropagation时,访问这些序列即可。
with tf.GradientTape() as tape:
cost = w ** 2 - 10 * w + 25
五、training step
如果cost function只和w相关,则可以定义成如下形式:
def train_step:
with tf.GradientTape() as tape:
cost = w ** 2 - 10 * w + 25
trainable_variable = (w)
grade = tape.gradient(cost, trainable_variable)
optimizer.apply_gradients(zip(grade, trainable_variable))
for i in range(1000):
train_step()
也可以将常数定义在一个array中,简化代码:
w = tf.Variable(0, type = tf.float32)
x = np.array([1.0, -10.0, 25.0], dtype = np.float32)
optimizer = tf.keras.optimizer.Adam(0.1)
def training(x, w, optimizer):
def cost_fn():
return x[0] * w ** 2 + x[1] * w + x[2]
for i in range(10000):
optimizer_minimize(cost_fn, [w])
return w
w = training(x, w, optimizer)
最后
以上就是有魅力身影为你收集整理的TensorFlow基础架构的全部内容,希望文章能够帮你解决TensorFlow基础架构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复