四时宝库

程序员的知识宝库

机器学习100天-Day2104 Tensorboard无法访问问题

按照教程中的要求,是有一个tensorboard对训练结果进行可视化的,但是一直无法成功显示。

无法访问Tensorboard问题

我们将记录保存在项目根目录下的tf.logs文件夹中

root_logdir = r"./tf_logs"

以教程示例代码为例。

import numpy as np
from sklearn.datasets import fetch_california_housing
import tensorflow as tf
from sklearn.preprocessing import StandardScaler
housing = fetch_california_housing()
m, n = housing.data.shape
print("数据集:{}行,{}列".format(m,n))
housing_data_plus_bias = np.c_[np.ones((m, 1)), housing.data]
scaler = StandardScaler()
scaled_housing_data = scaler.fit_transform(housing.data)
scaled_housing_data_plus_bias = np.c_[np.ones((m, 1)), scaled_housing_data]
from datetime import datetime
now = datetime.utcnow().strftime("%Y%m%d%H%M%S")
root_logdir = r"./tf_logs"
logdir = "{}/run-{}/".format(root_logdir, now)
n_epochs = 1000
learning_rate = 0.01
X = tf.placeholder(tf.float32, shape=(None, n + 1), name="X")
y = tf.placeholder(tf.float32, shape=(None, 1), name="y")
theta = tf.Variable(tf.random_uniform([n + 1, 1], -1.0, 1.0, seed=42), name="theta")
y_pred = tf.matmul(X, theta, name="predictions")
error = y_pred - y
mse = tf.reduce_mean(tf.square(error), name="mse")
optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)
training_op = optimizer.minimize(mse)
init = tf.global_variables_initializer()
mse_summary = tf.summary.scalar('MSE', mse)
file_writer = tf.summary.FileWriter(logdir, tf.get_default_graph())
n_epochs = 10
batch_size = 100
n_batches = int(np.ceil(m / batch_size))
def fetch_batch(epoch, batch_index, batch_size):
 np.random.seed(epoch * n_batches + batch_index) # not shown in the book
 indices = np.random.randint(m, size=batch_size) # not shown
 X_batch = scaled_housing_data_plus_bias[indices] # not shown
 y_batch = housing.target.reshape(-1, 1)[indices] # not shown
 return X_batch, y_batch
with tf.Session() as sess: # not shown in the book
 sess.run(init) # not shown
 for epoch in range(n_epochs): # not shown
 for batch_index in range(n_batches):
 X_batch, y_batch = fetch_batch(epoch, batch_index, batch_size)
 if batch_index % 10 == 0:
 summary_str = mse_summary.eval(feed_dict={X: X_batch, y: y_batch})
 step = epoch * n_batches + batch_index
 file_writer.add_summary(summary_str, step)
 sess.run(training_op, feed_dict={X: X_batch, y: y_batch})
 best_theta = theta.eval()
file_writer.close()
print(best_theta)

在运行完毕后,可以看到项目文件夹中出现tf.logs文件夹。

按照教程

  • 打开pycharm 的terminal,转入项目文件夹,输入
tensorboard --logdir=/Users/01/Desktop/机器学习作业/sklearn+tensorflow/tf_logs/run-20190124025648

也就是你生成的那个文件夹名称

  • 回车后启动tensorboard。
  • 将http:……输入浏览器,就应该是可以了,然而……

问题出在哪里,本来以为是端口问题,我试着换成8080端口依旧不行,搁置两天要放弃后,突然想起来tensorboard就是一个服务器显示页面,localhost是否可以?启动后输入万年localhost:8080,搞定。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接