我是靠谱客的博主 有魅力身影,最近开发中收集的这篇文章主要介绍TensorFlow基础架构,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        本文以一个简单的例子来说明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基础架构所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部