我正在尝试访问AWS上的Tensorboard.这是我的设置:
tensorboard --host 0.0.0.0 --logdir=train::在6006端口启动TensorBoard b'39'(您可以导航到 http://172.31.18.170:6006)
但是连接到ec2-blabla.us-west-1.compute.amazonaws.com:6006我看不到任何东西,我基本上无法连接.
你有什么主意吗?
我为MNISTdb 编写了以下简单的MLP网络.
from __future__ import print_function
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras import callbacks
batch_size = 100
num_classes = 10
epochs = 20
tb = callbacks.TensorBoard(log_dir='/Users/shlomi.shwartz/tensorflow/notebooks/logs/minist', histogram_freq=10, batch_size=32,
write_graph=True, write_grads=True, write_images=True,
embeddings_freq=10, embeddings_layer_names=None,
embeddings_metadata=None)
early_stop = callbacks.EarlyStopping(monitor='val_loss', min_delta=0,
patience=3, verbose=1, mode='auto')
# the data, shuffled and split between train and test sets
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(60000, 784)
x_test = x_test.reshape(10000, 784)
x_train …Run Code Online (Sandbox Code Playgroud) 在培训预先预测的估算器时,打印精度指标以及丢失的最简单方法是什么?
大多数教程和文档似乎都解决了当您创建自定义估算器时的问题 - 如果打算使用其中一个可用的估算器,这似乎有点过头了.
tf.contrib.learn有一些(现已弃用)Monitor钩子.TF现在建议使用钩子API,但看起来它实际上没有任何可以利用标签和预测来生成准确度数字的东西.
我只看到了几个问这个问题的问题,但他们都没有答案,所以我想我也可以试试.我一直在使用gensim的word2vec模型来创建一些向量.我将它们导出到文本中,并尝试将其导入到tensorflow的嵌入式投影仪的实时模型中.一个问题.它没用.它告诉我,张量的格式不正确.所以,作为初学者,我想我会问一些有更多可能解决方案经验的人.
相当于我的代码:
import gensim
corpus = [["words","in","sentence","one"],["words","in","sentence","two"]]
model = gensim.models.Word2Vec(iter = 5,size = 64)
model.build_vocab(corpus)
# save memory
vectors = model.wv
del model
vectors.save_word2vec_format("vect.txt",binary = False)
Run Code Online (Sandbox Code Playgroud)
这将创建模型,保存向量,然后在带有所有维度值的制表符分隔文件中将结果打印出来.我理解如何做我正在做的事情,我只是无法弄清楚我把它放在tensorflow中的方式有什么问题,因为据我所知,有关这方面的文档非常缺乏.
提交给我的一个想法是实现适当的tensorflow代码,但我不知道如何编写代码,只是导入实时演示中的文件.
编辑:我现在有一个新问题.我有载体的对象是不可迭代的,因为gensim显然决定使自己的数据结构与我正在尝试的不兼容.
好.做完了!谢谢你的帮助!
我正在使用自定义tf.Estimator对象来训练神经网络。问题在于培训后事件文件的大小-太大了。我已经通过使用解决了将一部分数据集保存为常量的问题tf.Dataset.from_generator()。但是,尺寸仍然很大,开始时tensorboard我收到消息
W0225 10:38:07.443567 140693578311424 tf_logging.py:120] Found more than one metagraph event per run. Overwriting the metagraph with the newest event.
因此,我想我正在此事件文件中创建并保存许多不同的图形。是否可以关闭此保存或仅保存第一份副本?
众所周知,我找到了删除所有默认日志的唯一方法,方法是删除带有
list(map(os.remove, glob.glob(os.path.join(runtime_params['model_dir'], 'events.out.tfevents*'))))
Run Code Online (Sandbox Code Playgroud)
但是,这对我来说是一个不好的解决方案,因为我希望保留摘要,最好保留图表的一个副本。
从文档中,我可以看到
估算器自动将以下内容写入磁盘:
python tensorflow tensorboard tensorflow-datasets tensorflow-estimator
当我继续训练我的模型并在 tensorboard 上可视化进度时,我遇到了一些问题。
我的问题是如何在不手动指定任何时期的情况下从同一步骤恢复训练?如果可能,只需加载保存的模型,它就可以global_step从保存的优化器中读取并从那里继续训练。
我在下面提供了一些代码来重现类似的错误。
import tensorflow as tf
from tensorflow.keras.callbacks import TensorBoard
from tensorflow.keras.models import load_model
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(512, activation=tf.nn.relu),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10, callbacks=[Tensorboard()])
model.save('./final_model.h5', include_optimizer=True)
del model
model = load_model('./final_model.h5')
model.fit(x_train, y_train, epochs=10, callbacks=[Tensorboard()])
Run Code Online (Sandbox Code Playgroud)
您可以tensorboard使用以下命令运行:
tensorboard --logdir ./logs
Run Code Online (Sandbox Code Playgroud) 我的问题是当我尝试运行这段代码时
if log_to_tensorboard: from torch.utils.tensorboard import SummaryWriter
if log_to_tensorboard: writer = SummaryWriter()
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
(导入 SummaryWriter 工作没有任何问题,但后来我尝试运行“writer = SummaryWriter()”,但它不起作用)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-23-d77d9d09e62b> in <module>
----> 1 writer = SummaryWriter()
/anaconda3/lib/python3.6/site-packages/torch/utils/tensorboard/writer.py in __init__(self, log_dir, comment, purge_step, max_queue, flush_secs, filename_suffix)
223 # and recreated later as needed.
224 self.file_writer = self.all_writers = None
--> 225 self._get_file_writer()
226
227 # Create default bins for histograms, see generate_testdata.py in tensorflow/tensorboard
/anaconda3/lib/python3.6/site-packages/torch/utils/tensorboard/writer.py in _get_file_writer(self)
254 if self.all_writers is None or self.file_writer …Run Code Online (Sandbox Code Playgroud) 我的云端硬盘上已存在一个 tfevent 文件,并且已成功将其连接到 Google Colab。在 Tensorboard Github 的问题中搜索后,我发现我必须将 dom.serviceWorkers.enabled 设置为 True,我已经完成了。但是在执行了两个步骤之后在 Google Colab 上:
%load_ext tensorboard%tensorboard --logdir path/to/logs我使用的是 Firefox 版本 81.0.1(64 位)并且我的默认模式是私人窗口,所以在我关闭所有浏览器窗口后会清除历史记录和缓存。
有人可以帮我弄这个吗?
VS Code 的 Python 扩展最近发布了 TensorBoard 集成,但它似乎对我不起作用。
每当我从命令面板运行“Python:启动 TensorBoard”时,我都会看到 此屏幕。这是 TensorBoard 页面,其中显示默认消息“当前数据集没有活动的仪表板”。命令 plate 命令有两个日志目录选项,“使用当前工作目录”和“选择另一个文件夹”,但似乎都不起作用。
但是,当我使用终端命令正常运行 TensorBoard 时
tensorboard --logdir=...
Run Code Online (Sandbox Code Playgroud)
一切正常。这让我认为我的日志目录和张量板安装设置良好,问题出在 VS Code 或 Python 扩展上。
我应该提到我使用 PyTorch 和 PyTorch Lightning 生成日志,而不是 Tensorflow。(就上下文而言,我使用的是 macOS Big Sur)
有谁知道解决方法是什么?
python visual-studio-code tensorboard vscode-python pytorch-lightning
我想提取所有数据来绘制绘图,而不是使用张量板。我的理解是,自从张量板绘制线图以来,所有带有损失和准确性的日志都存储在定义的目录中。
%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
python ×8
tensorflow ×6
keras ×2
amazon-ec2 ×1
firefox ×1
gensim ×1
logging ×1
mnist ×1
python-3.x ×1
pytorch ×1
tcp ×1
torch ×1