如不雅深层神经收集模型的复杂度异常高的话,那么练习它可能须要相当长的一段时光,当然这也取决于你拥有的数据量,运行模型的硬件等等。在大年夜多半情况下,你须要经由过程保存文件来保障你实验的稳定性,防止如不雅中断(或一个缺点),你可以或许持续大年夜没出缺点的处所开端。
更重要的是,对于任何深度进修的框架,像TensorFlow,在成功的练习之后,你须要从新应用模型的进修参数来完查对新数据的猜测。
在这篇文┞仿中,我们来看一下若何保存和恢复TensorFlow模型,我们在此介绍一些最有效的办法,并供给一些例子。
1. 起首我们将快速介绍TensorFlow模型
TensorFlow的重要功能是经由过程张量来传递其根本数据构造类似于NumPy中的多维数组,而图表则表示数据计算。它是一个符号库,这意味着定义图形和张量将仅创建一个模型,而获取张量的具体值和操作将在会话(session)中履行,会话(session)一种在图中履行建模操作的机制。会话封闭时,张量的任何具体值都邑损掉,这也是运行会话后将模型保存到文件的另一个原因。
无论若何,在这个例子中,我们将应用我们定义的练习数据tf,并且可视化模型拟合。
经由过程示例可以赞助我们更轻易懂得,所以让我们为二维数据的线性回归创建一个简单的TensorFlow模型。
起首,我们将导入我们的看魏
- import tensorflow as tf
- import numpy as np
- import matplotlib.pyplot as plt
- %matplotlib inline
下一步是创建模型。我们将生成一个模型,它将以以下的情势估算二次函数的水平和垂直位移:
- y = (x - h) ^ 2 + v
- # Clear the current graph in each run, to avoid variable duplication
- tf.reset_default_graph()
- # Create placeholders for the x and y points
- X = tf.placeholder("float")
- Y = tf.placeholder("float")
- # Initialize the two parameters that need to be learned
- h_est = tf.Variable(0.0, name='hor_estimate')
- v_est = tf.Variable(0.0, name='ver_estimate')
- # y_est holds the estimated values on y-axis
- y_est = tf.square(X - h_est) + v_est
- # Define a cost function as the squared distance between Y and y_est
- cost = (tf.pow(Y - y_est, 2))
- # The training operation for minimizing the cost function. The
- # learning rate is 0.001
- trainop = tf.train.GradientDescentOptimizer(0.001).minimize(cost)
在创建模型的过程中,我们须要有一个在会话中运行的模型,并且传递一些真实的数据。我们生成一些二次数据(Quadratic data),并给他们添加噪声。