我使用tutorials/mnist/fully_connected_feed.py脚本创建了带有图形的 Tensorboard 日志(我在其他脚本上也有同样的问题)。
summary_writer = tf.train.SummaryWriter("logdir", graph_def=sess.graph_def)
Run Code Online (Sandbox Code Playgroud)
Tensorboard 适用于标量、图像和直方图,但不适用于图形。我得到一个白页,只有标题。
如果我打开浏览器控制台(Firefox 42、Ubuntu 14.04),当我切换到 GRAPH 选项卡时会收到这些错误:
NS_ERROR_FAILURE: tf-tensorboard.html-12.js:115:0
Reading graph.pbtxt : 2 ms tf-tensorboard.html.js:13:1
Reading stats.pbtxt : 0 ms tf-tensorboard.html.js:13:1
Parsing graph.pbtxt : 26 ms tf-tensorboard.html.js:13:1
Normalizing names : 10 ms tf-tensorboard.html.js:13:1
Building the data structure : 13 ms tf-tensorboard.html.js:13:1
Adding nodes : 14 ms tf-tensorboard.html.js:13:1
Detect series : 16 ms tf-tensorboard.html.js:13:1
Adding edges : 14 ms tf-tensorboard.html.js:13:1
Finding similar subgraphs : 27 ms tf-tensorboard.html.js:13:1
new tf.graph.render.Hierarchy : …Run Code Online (Sandbox Code Playgroud) 我使用了基于 Docker 的安装。
$ docker run -it b.gcr.io/tensorflow/tensorflow-full
Run Code Online (Sandbox Code Playgroud)
我是这样启动 Tensorboard 的:
docker run -p 0.0.0.0:6006:6006 -it b.gcr.io/tensorflow/tensorflow-full
python tensorflow/tensorflow/tensorboard/tensorboard.py --logdir ./ --host 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
然后,我打开了 Chrome。我在标题上看到了 TensorBoard,但它是空的。
这是一些图片:http : //imgur.com/a/ZwdzD
如何在基于 Docker 的安装上正确查看 tensorboard?
我注意到在训练期间,tensorflow 变得越来越慢。我在训练期间绘制了每个样本的计算时间,我观察到在第一个 80k 大致恒定之后,它不断增加;更重要的是,它似乎遵循一种模式,即计算时间每 20k 步就会增加一次,并在两者之间保持不变。
在 400k 步之后,每个样本的计算时间从 1.46 毫秒增加到 25.11 毫秒,x17 的增加显然是不受欢迎的。
当我停止训练并从上次保存的模型恢复时,每个样本的计算时间回落到 ~1.46 毫秒,因此这不是来自模型。
有没有人遇到过同样的问题,原因是什么?(我的下一步将是在不保存摘要的情况下运行以尝试在此级别定位问题)。
更新:当摘要关闭时,计算时间保持不变。
更新:tf.get_default_graph().finalize()在训练循环之前和调用摘要时没有抛出错误。
更新和部分答案。
似乎计算时间的膨胀是由于在评估我的摘要时trace_level使用了值为tf.RunOptions.FULL_TRACE。
更换
run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
smry = sess.run(smry_op, feed_dict=feed_dict, options=run_options)
Run Code Online (Sandbox Code Playgroud)
和
smry = sess.run(smry_op, feed_dict=feed_dict)
Run Code Online (Sandbox Code Playgroud)
摆脱这个问题。当然,问题仍然是为什么 FULL_TRACE 会产生如此增长的开销,因此我将问题悬而未决。
我正在学习 tensorflow,我首先有两个问题是,是否有必要在会话中运行每个操作?就像如果我创建一个简单的程序,其中有加法和减法以及矩阵乘法三个运算,那么是否有必要在会话中运行所有这些运算?
import tensorflow as tf
import numpy as np
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]="3"
a=np.array([[1,2,3],[4,5,6],[5,6,7]],dtype="float32")
b=np.array([[7,8,9],[9,6,5],[6,7,8]],dtype="float32")
ab=tf.Variable(a)
bb=tf.constant(b)
inn=tf.global_variables_initializer()
add=ab+bb
sub=(ab-bb)
mul=tf.matmul(a,b)
with tf.Session() as rr:
rr.run(inn)
rr.run(ab)
res=rr.run(mul)
print(res)
Run Code Online (Sandbox Code Playgroud)
所以现在我必须在会话中运行每个操作(add、sub 和 matmul)?
如果“是”我必须运行,那么我可以一起运行所有这些操作吗?我试过了,但出现错误:
首先我试过这个:
import tensorflow as tf
import numpy as np
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]="3"
a=np.array([[1,2,3],[4,5,6],[5,6,7]],dtype="float32")
b=np.array([[7,8,9],[9,6,5],[6,7,8]],dtype="float32")
ab=tf.Variable(a)
bb=tf.constant(b)
inn=tf.global_variables_initializer()
add=ab+bb
sub=(ab-bb)
mul=tf.matmul(a,b)
with tf.Session() as rr:
rr.run(inn,ab,add,sub,mul)
rr.run(ab)
res=rr.run(mul)
print(res)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
TypeError: run() takes from 2 to 5 positional arguments but 6 were given
Run Code Online (Sandbox Code Playgroud)
所以我从运行中删除了一个参数(mul)然后我得到了这个错误:
raise TypeError("Using a `tf.Tensor` …Run Code Online (Sandbox Code Playgroud) 我有一些张量板数据,我希望我的服务器让我看到这些数据。我不想将 tensorboard 数据文件发送到我的计算机,所以如果我可以远程访问它们,那将是理想的。如何做到这一点?我会假设服务器只是将其作为普通网站托管?什么是 Tensorboard 命令?
我知道本地人可以这样做:
tensorboard --logdir=path/to/log-directory
Run Code Online (Sandbox Code Playgroud)
然后去浏览器做:
http://localhost:6006/
Run Code Online (Sandbox Code Playgroud)
但是是否可以从服务器等效,然后从服务器读取本地浏览器/计算机中的数据?
是否有任何工具可以监控PyTorch中的网络培训?就像tensorflow中的tensorboard。
我想用下划线记录几个字符串到tensorboard.但是,下划线在管道中的某处被视为重点.这是一些示例代码来说明问题.我已经包含了一些试图逃避下划线的版本
import tensorflow as tf
sess = tf.InteractiveSession()
text0 = """/a/b/c_d/f_g_h_2017"""
text1 = """/a/b/c\_d/f\_g\_h\_2017"""
text2 = """/a/b/c\\_d/f\\_g\\_h\\_2017"""
summary_op0 = tf.summary.text('text', tf.convert_to_tensor(text0))
summary_op1 = tf.summary.text('text', tf.convert_to_tensor(text1))
summary_op2 = tf.summary.text('text', tf.convert_to_tensor(text2))
summary_op = tf.summary.merge([summary_op0, summary_op1, summary_op2])
summary_writer = tf.summary.FileWriter('/tmp/tensorboard', sess.graph)
summary = sess.run(summary_op)
summary_writer.add_summary(summary, 0)
summary_writer.flush()
summary_writer.close()
Run Code Online (Sandbox Code Playgroud)
这是输出:
如何使用张量板正确渲染带有张量板的字符串?包版本:Tensorflow 1.3.0,TensorBoard 0.1.8
我想使用keras + tensorboard.我的架构看起来像这样:
tbCallBack = TensorBoard(log_dir='./logs', histogram_freq=2, batch_size=32, write_graph=True, write_grads=True, write_images=True)
K.clear_session()
sess = tf.Session()
K.set_session(sess)
input_img = Input(shape=(augmented_train_data[0].shape[0], augmented_train_data[0].shape[1], 3))
x = Conv2D(8, (1, 1), padding='same', activation='relu', name="1x1_1")(input_img)
x = Conv2D(16, (3, 3), padding='same', activation='relu', name="3x3_1")(x)
x = Conv2D(32, (3, 3), padding='same', activation='relu', name="3x3_2")(x)
x = Conv2D(1, (1, 1), padding='same', activation='relu', name="1x1_2")(x)
x = Flatten()(x)
x = Dense(16, activation='relu')(x)
output = Dense(2)(x)
model = Model(inputs=input_img, outputs=output)
model.compile(optimizer='adam', loss='mean_squared_error')
#tbCallBack.set_model(model)
print(model.summary())
history = model.fit(augmented_train_data, augmented_train_label, validation_data=[augmented_validation_data, augmented_validation_label] ,epochs=20, batch_size=32, callbacks=[tbCallBack]) …Run Code Online (Sandbox Code Playgroud) 我正在训练fast_rcnn_inception模块,以对自定义数据集进行对象检测。在训练目录中,我们找到名为eval_0的文件夹,并且tensorflow生成了events.out.tfevents.xxxxxx文件。
培训目录结构如下
+training_dir
+eval_0
-events.out.tfevents.1542309785.instance-1 1.2GB
-events.out.tfevents.1542367255.instance-1 5.3GB
-events.out.tfevents.1542369886.instance-1 3.6GB
-events.out.tfevents.1542624154.instance-1 31MB
-events.out.tfevents.1543060258.instance-1 19MB
-events.out.tfevents.1543066775.instance-2 1.6GB
-events.out.tfevents.1542308099.instance-1 17MB
-events.out.tfevents.1542308928.instance-1 17MB
-events.out.tfevents.1542366369.instance-1 17MB
-events.out.tfevents.1542369000.instance-1 17MB
-events.out.tfevents.1542623262.instance-1 17MB
-events.out.tfevents.1543064936.instance-2 17MB
-events.out.tfevents.1543065796.instance-2 17MB
-events.out.tfevents.1543065880.instance-2 17MB
-model.ckpt-96004.data-00000-of-00001
-model.ckpt-96004.data-00000-of-00001
-model.ckpt-96004.index
-model.ckpt-96004.meta
-model.ckpt-96108.data-00000-of-00001
-model.ckpt-96108.index
-model.ckpt-96108.meta
Run Code Online (Sandbox Code Playgroud)
按我的理解,tfevents在eval_0文件夹是夏日文件评价和tfevents文件training_dir是夏日文件的培训。
我已经中断了几次培训过程,并从最近的检查站继续。我也了解重新启动训练过程会生成新的tfevents文件。
我的问题如下:
为什么训练tfevents_files的大小相同,但是如果 eval_0 / tfevents_files的大小不同呢?
为什么中断训练会在训练文件夹中生成新的tfevents_file,但在eval_0情况下却未观察到相同的内容?
我可以删除所有tfevents在文件eval_0除了最新的一个?它会影响训练或进化历史吗?
我在Ubuntu 18上运行TensorFlow版本1.9。我正在尝试使用tensorboard可视化。
我已经在anaconda提示符下安装了tensorboard 1.9。我已经执行了以下命令:
张量板--logdir =。/ eval / --port = 8090 --host = 127.0.0.1
eval是包含运行TensorFlow时生成的摘要数据的文件。
该脚本失败,并显示:
从tensorboard.main中导入文件“ / home / anaconda3 / envs / tensorflow_cpu / bin / tensorboard”,行run_main文件“ /home/anaconda3/envs/tensorflow_cpu/lib/python3.6/site-packages/tensorboard/main来自tensorboard的第44行中的.py“,导入默认文件“ /home/anaconda3/envs/tensorflow_cpu/lib/python3.6/site-packages/tensorboard/default.py”,第36行,来自tensorboard.plugins.beholder从tensorboard.plugins.beholder.beholder导入beholder文件“ /home/anaconda3/envs/tensorflow_cpu/lib/python3.6/site-packages/tensorboard/plugins/beholder/__init__.py”,第15行。 /home/anaconda3/envs/tensorflow_cpu/lib/python3.6/site-packages/tensorboard/plugins/beholder/beholder.py”,行199,在BeholderHook(tf.estimator.SessionRunHook)类中:AttributeError:模块“ tensorflow.estimator”没有属性“ SessionRunHook”
请有人帮我找到解决此错误的方法吗?
谢谢
tensorboard ×10
tensorflow ×8
python ×2
docker ×1
keras ×1
linux ×1
markdown ×1
python-2.7 ×1
python-3.x ×1
pytorch ×1
ubuntu ×1