我有一个在 TensorFlow 中实现的网络,需要很长时间才能训练,因此想要对其进行分析以查看哪些部分导致运行时间过长。
为此,我按照此处的说明捕获运行时和内存信息。我的代码如下所示:
// define network
loss = ...
train_op = tf.train.AdamOptimizer().minimize(loss, global_step=global_step)
// run forward and backward prop for one batch
run_metadata = tf.RunMetadata()
options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
_,loss,sum = sess.run([train_op,loss,sum], feed_dict=fd, options=options, run_metadata=run_metadata)
writer.add_run_metadata(run_metadata, 'step_%d' % step)
Run Code Online (Sandbox Code Playgroud)
然后我可以在 TensorBoard 中看到“会话运行”。但是,一旦我加载会话运行,图表中的大多数操作就会变成橙色,如下所示,并且没有可用的运行时或内存信息:
据传说,这些操作是“未使用的”。但事实并非如此,因为除了“loss”和“opt”之外,几乎所有内容都是这样显示的。显然,必须使用整个网络来计算损失。所以我真的不明白为什么图表会这样显示。
我在 Tesla K40c 上使用 TF 1.3。
我看到tensorflow支持AWS s3文件系统(https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/platform/s3),但我无法将S3路径与tensorboard一起使用。
我最近每晚尝试过,0.4.0rc3但没有运气。我也在本地构建并确保Do you wish to build TensorFlow with Amazon S3 File System support? [Y/n]:设置为YES但我仍然看不到tensorboard --logdir=s3://bucket/path工作。
我在这里错过了什么吗?
我知道如何将标量值保存到 csv 或 json。但我找不到数据下载链接来保存直方图和分布。有人知道怎么做吗?我尝试用谷歌搜索,但找不到任何有关此的文档。
在tensorflow 1.4附带的tensorboard实用程序中,HISTOGRAMS选项卡左侧有一个DISTRIBUTIONS选项卡。当我查看分布时,有浅色和深色。例子:
浅色和深色分别代表什么意思?我很确定 dark 是更常见的值(例如,分布的中间第 n 个百分位数),但我找不到有关它的文档。
我正在使用张量板来可视化一些网络结果。方便的是,它添加了一个滑块来跳过步骤 - 但为了“同步”图像,我必须手动滑动到每个图像中的正确步骤。例如,我在这里滑动到step 32(predicition_c0_1左图)。如果我想要相应的prediction_c0(右图),我必须手动滑动到它。
有没有办法自动同步在所有图像上滑动步骤?
我使用 Matplotlib 在训练期间的每个时期创建自定义 t-SNE 嵌入图。我希望绘图以滑块格式显示在 Tensorboard 上,就像这个 MNST 示例一样:
但相反,每批图都显示为每个时期的单独摘要,这确实很难在以后查看。见下文:
它似乎正在创建具有相同名称的多个图像摘要,因此附加_X后缀而不是像我想要的那样覆盖或添加到滑块。同样,当我使用family参数时,图像会以不同的方式分组,但仍附加_X到摘要名称范围。
这是我的代码,用于创建自定义图并添加到tf.summary.image使用自定义图并将评估的摘要添加到摘要编写器。
def _visualise_embedding(step, summary_writer, features, silhouettes, sample_size=1000):
'''
Visualise features embedding image by adding plot to summary writer to track on Tensorboard
'''
# Select random sample
feats_to_sils = list(zip(features, silhouettes))
shuffle(feats_to_sils)
feats, sils = zip(*feats_to_sils)
feats = feats[:sample_size]
sils = sils[:sample_size]
# Embed feats to 2 dim space
embedded_feats = perform_tsne(2, feats)
# Plot features embedding
im_bytes = plot_embedding(embedded_feats, sils) …Run Code Online (Sandbox Code Playgroud) 一直在尝试使用大量设置/env-vars/tf-versions,但不起作用..
在我的本地机器上,这是有效的:AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=XXX AWS_REGION=eu-west-1 tensorboard --logdir="s3://my-bucket/tflogs/"
在 AWS 实例上,这将抛出:
I tensorflow/core/platform/s3/aws_logging.cc:54] Creating HttpClient with max connections2 and scheme http
I tensorflow/core/platform/s3/aws_logging.cc:54] Initializing CurlHandleContainer with size 2
I tensorflow/core/platform/s3/aws_logging.cc:54] Creating Instance with default EC2MetadataClient and refresh rate 900000
I tensorflow/core/platform/s3/aws_logging.cc:54] Found secret key
I tensorflow/core/platform/s3/aws_logging.cc:54] Initializing CurlHandleContainer with size 25
I tensorflow/core/platform/s3/aws_logging.cc:54] Found secret key
I tensorflow/core/platform/s3/aws_logging.cc:54] Pool grown by 2
I tensorflow/core/platform/s3/aws_logging.cc:54] Connection has been released. Continuing.
E tensorflow/core/platform/s3/aws_logging.cc:60] Curl returned error code 6
W tensorflow/core/platform/s3/aws_logging.cc:57] If …Run Code Online (Sandbox Code Playgroud) 我正在使用 Tensorflow 对象检测 api 训练对象检测模型。eval配置是这样的:
评估配置:{
示例数量:8000
最大评估值:10
可视化数量:20
include_metrics_per_category: true
}
但是,张量板不显示任何每个类别的指标。我还有什么需要做的吗?
我的X_test是 128x128x3 图像,我的Y_test是 512x512x3 图像。我想在每个纪元之后显示输入(X_test)的外观、预期输出(Y_test)的外观以及实际输出的外观。到目前为止,我只知道如何在 Tensorboard 中添加前 2 个。这是调用回调的代码:
model.fit(X_train,
Y_train,
epochs=epochs,
verbose=2,
shuffle=False,
validation_data=(X_test, Y_test),
batch_size=batch_size,
callbacks=get_callbacks())
Run Code Online (Sandbox Code Playgroud)
这是回调的代码:
import tensorflow as tf
from keras.callbacks import Callback
from keras.callbacks import TensorBoard
import io
from PIL import Image
from constants import batch_size
def get_callbacks():
tbCallBack = TensorBoard(log_dir='./logs',
histogram_freq=1,
write_graph=True,
write_images=True,
write_grads=True,
batch_size=batch_size)
tbi_callback = TensorBoardImage('Image test')
return [tbCallBack, tbi_callback]
def make_image(tensor):
"""
Convert an numpy representation image to Image protobuf.
Copied from https://github.com/lanpa/tensorboard-pytorch/
"""
height, …Run Code Online (Sandbox Code Playgroud) 我之前使用过带有一些相当简单的神经网络的张量板,每次我只是在 model.fit() 函数上使用回调。我尝试更多地了解 GAN,并尝试理解一些像这样的代码
class ACGAN():
def __init__(self):
# Input shape
self.img_rows = 28
self.img_cols = 28
self.channels = 1
self.img_shape = (self.img_rows, self.img_cols, self.channels)
self.num_classes = 10
self.latent_dim = 100
optimizer = Adam(0.0002, 0.5)
losses = ['binary_crossentropy', 'sparse_categorical_crossentropy']
# Build and compile the discriminator
self.discriminator = self.build_discriminator()
self.discriminator.compile(loss=losses,
optimizer=optimizer,
metrics=['accuracy'])
# Build the generator
self.generator = self.build_generator()
# The generator takes noise and the target label as input
# and generates the corresponding digit of that label
noise = …Run Code Online (Sandbox Code Playgroud)