我正在使用cifar10Tensorflow的模型.我将该inference函数用于训练和评估管道,并共享内部的所有变量.我的Tensorboard图形可视化在图片中看起来像.
范围conv1 -> conv1_1内两个主要列(例如)之间的箭头inference有望反映所有conv1变量是共享的.
同时,conv1_1代码中不存在节点.看起来它被复制conv1来分离我的两个输入的管道.
我的问题是*_1图中所有节点的确切含义是什么?当我使用不同的输入时,Tensorflow中的范围和函数是否会被复制?主要问题是:有没有办法*_1在图形可视化中隐藏节点,因为它们令人困惑和混乱.
TensorBoard具有在会话时间绘制张量直方图的功能.我想要一个训练期间梯度的直方图.
tf.gradients(yvars,xvars) 返回一个渐变列表.
但是,tf.histogram_summary('name',Tensor)只接受Tensors,而不是Tensors列表.
目前,我做了一个解决方案.我将所有Tensors展平为一个列向量并将它们连接起来:
for l in xrange(listlength):
col_vec = tf.reshape(grads[l],[-1,1])
g = tf.concat(0,[g,col_vec])
grad_hist = tf.histogram_summary("name", g)
绘制渐变直方图的更好方法是什么?
这似乎很常见,所以我希望TensorFlow能有一个专门的功能.
我正在尝试使用Tensorflow比较不同的学习率衰减.因此,我在Tensorboard中可视化成本函数('EVENTS'-tab).我的问题是功能的不同图形颜色非常相似,很难比较它们.有没有可能改变这些颜色?
我有一个变量随着列车迭代而变化.变量不作为计算图的一部分计算.
是否可以将其添加到tensorflow摘要中,以便将其与损失函数一起显示?
使用Pimia Indians糖尿病数据集,我构建了以下顺序模型:
import matplotlib.pyplot as plt
import numpy
from keras import callbacks
from keras import optimizers
from keras.layers import Dense
from keras.models import Sequential
from keras.callbacks import ModelCheckpoint
from sklearn.preprocessing import StandardScaler
#TensorBoard callback for visualization of training history
tb = callbacks.TensorBoard(log_dir='./logs/latest', histogram_freq=10, batch_size=32,
write_graph=True, write_grads=True, write_images=False,
embeddings_freq=0, embeddings_layer_names=None, embeddings_metadata=None)
# Early stopping - Stop training before overfitting
early_stop = callbacks.EarlyStopping(monitor='val_loss', min_delta=0, patience=3, verbose=1, mode='auto')
# fix random seed for reproducibility
seed = 42
numpy.random.seed(seed)
# load pima indians dataset …Run Code Online (Sandbox Code Playgroud) 我发现Dataset.map()功能非常适合设置管道以预先处理图像/音频数据,然后再送入网络进行培训,但我遇到的一个问题是在预处理之前访问原始数据以发送到tensorboard作为摘要.
例如,假设我有一个加载音频数据的功能,做一些帧,制作频谱图,然后返回.
import tensorflow as tf
def load_audio_examples(label, path):
# loads audio, converts to spectorgram
pcm = ... # this is what I'd like to put into tf.summmary.audio() !
# creates one-hot encoded labels, etc
return labels, examples
# create dataset
training = tf.data.Dataset.from_tensor_slices((
tf.constant(labels),
tf.constant(paths)
))
training = training.map(load_audio_examples, num_parallel_calls=4)
# create ops for training
train_step = # ...
accuracy = # ...
# create iterator
iterator = training.repeat().make_one_shot_iterator()
next_element = iterator.get_next()
# ready session
sess = tf.InteractiveSession()
tf.global_variables_initializer().run() …Run Code Online (Sandbox Code Playgroud) python tensorflow tensorboard tensorflow-serving tensorflow-datasets
我正在为深度学习设置本地开发环境.我在Fast.ai论坛上关注此主题的第一篇文章中的说明:
http://forums.fast.ai/t/py3-and-tensorflow-setup/1460
跑步pip install git+git://github.com/fchollet/keras.git似乎已经成功安装了Keras,但有一些警告.
Successfully built Keras
distributed 1.221.8 require msgpack, which is not installed.
tensorboard 1.8.0 has requirement bleach==1.50, but you'll have to bleach 2.1.3 which is incompatible
Tensorboard 1.8.0 has requirement html5lib--0.9999999, but youll have html5lib 1.0.1 which is incompatible.
…
Successfully installed Keras-2.1.6
Run Code Online (Sandbox Code Playgroud)
当我尝试导入tensorflow时,从iPython我得到以下堆栈跟踪:
In [1]: import tensorflow
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
~/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py in <module>()
57
---> 58 from tensorflow.python.pywrap_tensorflow_internal import *
59 from tensorflow.python.pywrap_tensorflow_internal import __version__
~/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py in <module>()
27 …Run Code Online (Sandbox Code Playgroud) 我对TensorFlow的内部知识还很陌生。为了试图理解TensorFlow的AdamOptimizer的实现,我检查了TensorBoard中的相应子图。默认情况下name + '_1',似乎有一个名为的重复子图name='Adam'。
以下MWE产生下图。(请注意,我已经扩展了该x节点!)
import tensorflow as tf
tf.reset_default_graph()
x = tf.Variable(1.0, name='x')
train_step = tf.train.AdamOptimizer(1e-1, name='MyAdam').minimize(x)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
with tf.summary.FileWriter('./logs/mwe') as writer:
writer.add_graph(sess.graph)
Run Code Online (Sandbox Code Playgroud)
我很困惑,因为我希望上面的代码在图形内部仅产生一个名称空间。即使检查相关的源文件(即之后adam.py,optimizer.py和training_ops.cc),这不是很清楚,我如何/为什么/在其中创建副本。
问题:重复AdamOptimizer子图的来源是什么?
我可以想到以下可能性:
由于最初的困惑,我在最初的问题上写了详细的说明,以详细说明如何使用TensorFlow / TensorBoard建立可重现的环境,该环境可重现此图。现在,我已将所有内容替换为有关扩展x节点的说明。
我的云端硬盘上已存在一个 tfevent 文件,并且已成功将其连接到 Google Colab。在 Tensorboard Github 的问题中搜索后,我发现我必须将 dom.serviceWorkers.enabled 设置为 True,我已经完成了。但是在执行了两个步骤之后在 Google Colab 上:
%load_ext tensorboard%tensorboard --logdir path/to/logs我使用的是 Firefox 版本 81.0.1(64 位)并且我的默认模式是私人窗口,所以在我关闭所有浏览器窗口后会清除历史记录和缓存。
有人可以帮我弄这个吗?
我想提取所有数据来绘制绘图,而不是使用张量板。我的理解是,自从张量板绘制线图以来,所有带有损失和准确性的日志都存储在定义的目录中。
%reload_ext tensorboard
%tensorboard --logdir lightning_logs/
Run Code Online (Sandbox Code Playgroud)
但是,我想知道如何从 pytorch Lightning 中的记录器中提取所有日志。接下来是训练部分的代码示例。
#model
ssl_classifier = SSLImageClassifier(lr=lr)
#train
logger = pl.loggers.TensorBoardLogger(name=f'ssl-{lr}-{num_epoch}', save_dir='lightning_logs')
trainer = pl.Trainer(progress_bar_refresh_rate=20,
gpus=1,
max_epochs = max_epoch,
logger = logger,
)
trainer.fit(ssl_classifier, train_loader, val_loader)
Run Code Online (Sandbox Code Playgroud)
我已经确认trainer.logger.log_dir返回的目录似乎保存日志并trainer.logger.log_metrics返回<bound method TensorBoardLogger.log_metrics of <pytorch_lightning.loggers.tensorboard.TensorBoardLogger object at 0x7efcb89a3e50>>。
trainer.logged_metrics仅返回最后一个纪元的日志,例如
{'epoch': 19,
'train_acc': tensor(1.),
'train_loss': tensor(0.1038),
'val_acc': 0.6499999761581421,
'val_loss': 1.2171183824539185}
Run Code Online (Sandbox Code Playgroud)
你知道如何解决这个情况吗?
tensorboard ×10
tensorflow ×8
python ×5
python-3.x ×2
anaconda ×1
firefox ×1
keras ×1
logging ×1
pytorch ×1