【发布时间】:2017-06-24 08:36:56
【问题描述】:
我正在尝试阅读 TensorFlow 第一篇教程的第二部分: https://www.tensorflow.org/get_started/get_started
“基本用法”:
import tensorflow as tf
# NumPy is often used to load, manipulate and preprocess data.
import numpy as np
# Declare list of features. We only have one real-valued feature. There are many
# other types of columns that are more complicated and useful.
features = [tf.contrib.layers.real_valued_column("x", dimension=1)]
# An estimator is the front end to invoke training (fitting) and evaluation
# (inference). There are many predefined types like linear regression,
# logistic regression, linear classification, logistic classification, and
# many neural network classifiers and regressors. The following code
# provides an estimator that does linear regression.
estimator = tf.contrib.learn.LinearRegressor(feature_columns=features)
# TensorFlow provides many helper methods to read and set up data sets.
# Here we use two data sets: one for training and one for evaluation
# We have to tell the function how many batches
# of data (num_epochs) we want and how big each batch should be.
x_train = np.array([1., 2., 3., 4.])
y_train = np.array([0., -1., -2., -3.])
x_eval = np.array([2., 5., 8., 1.])
y_eval = np.array([-1.01, -4.1, -7, 0.])
input_fn = tf.contrib.learn.io.numpy_input_fn({"x":x_train}, y_train,
batch_size=4,
num_epochs=1000)
eval_input_fn = tf.contrib.learn.io.numpy_input_fn(
{"x":x_eval}, y_eval, batch_size=4, num_epochs=1000)
# We can invoke 1000 training steps by invoking the method and passing the
# training data set.
estimator.fit(input_fn=input_fn, steps=1000)
# Here we evaluate how well our model did.
train_loss = estimator.evaluate(input_fn=input_fn)
eval_loss = estimator.evaluate(input_fn=eval_input_fn)
print("train loss: %r"% train_loss)
print("eval loss: %r"% eval_loss)
谁能解释一下,这段代码中隐藏的计算图在哪里?
我没有看到对 tf.Graph() 或 tf.Session() 的任何呼叫。
features 变量的用途是什么?数据似乎永远不会进入其中,因为数据提供者是“input_fn”。
如何查看会话和图形的实际计算图?
为什么有两个地方可以设置 epoch 的数量? (estimator.fit 和 numpy_input_fn)
如果我有两个不同的估算器 estimator1.fit(..., steps=20) 和 estimator2.fit(..., steps=50) 怎么办?
我需要设置num_epochs=70吗?还是num_epochs=max(20,50)?
input_fn如何控制线程数,如果是从fit调用的,反之不行?
【问题讨论】:
标签: machine-learning tensorflow deep-learning