gpt4 book ai didi

python - 同时运行 model.fit() 和 TensorBoard?

转载 作者:行者123 更新时间:2023-12-03 13:02:30 24 4
gpt4 key购买 nike

我有一个关于同时运行 model.fit() 和 tensorboard 的有趣(对我来说)问题。

我在互联网上做了一些关于“线程”、“处理”、“多处理”的研究,尝试了一些例子,但无法解决我的问题。

我想同时运行 TensorBoard 和 model.fit(),例如:

from threading import Thread
import subprocess

def startTensorboard(log_dir):
# Tried both
os.system('tensorboard --logdir '+ log_dir)
# subprocess.call(['tensorboard', '--logdir', log_dir])

tensorboard = tf.keras.callbacks.TensorBoard(log_dir='logs', histogram_freq=0,
write_graph=True, write_images=False)

Thread(target = startTensorboard('logs')).start()

Thread(target = model.fit_generator(
self.train_data_gen,
steps_per_epoch=self.STEPS_PER_EPOCH,
validation_data = self.test_data_gen,
validation_steps = self.VALID_STEPS_PER_EPOCH,
epochs=self.epoch,
callbacks=[tensorboard])).start()

那可能吗?当我运行此代码时,TensorBoard 正在运行,但 model.fit() 不起作用。

最佳答案

以下是一个工作示例,我认为它可以满足您的需求。我正在使用 Process来自 multiprocessing模块。请注意,在您设置为 target 的函数内定义模型似乎很重要。对于 Process当您调用 fit函数,如 this post 中所示.我尝试在函数调用之外定义模型,它会初始化模型,但是训练会无限期地挂起。

当我在笔记本电脑上运行它时,tensorboard 需要一点时间才能开始,但通常在训练达到 70 纪元时,tensorboard 已经启动,它会继续运行,直到你用 Ctrl+C 杀死它。

import os
import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from multiprocessing import Process


def startTensorboard(logdir):
# Start tensorboard with system call
os.system("tensorboard --logdir {}".format(logdir))


def fitModel():
# Create your model
model = Sequential()
model.add(Dense(32, activation='relu', input_dim=100))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])

# Some mock training data
data = np.random.random((1000, 100))
labels = np.random.randint(2, size=(1000, 1))

# Run the fit function
model.fit(data, labels, epochs=100, batch_size=32)


if __name__ == '__main__':
# Run both processes simultaneously
Process(target=startTensorboard, args=("logs",)).start()
Process(target=fitModel).start()

关于python - 同时运行 model.fit() 和 TensorBoard?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59449422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com