tensorflow 如何定期清除Google Colab的输出

r7xajy2e  于 2023-03-09  发布在  Go
关注(0)|答案(6)|浏览(167)

我正在使用Google Colab训练一个使用tensorflow对象检测api的对象检测模型。当我运行train.py单元时,它不断打印诊断输出。大约30分钟后,浏览器崩溃,因为单元输出中打印的行数太多。
是否有任何脚本可以用来定期清除输出(比如每30分钟),而不是手动按clear output button

vm0i2vca

vm0i2vca1#

你可以使用google.colab.output.clear()

from google.colab import output

for i in range(100):
  print(i)
  # do something
  if i%10 == 0:
    output.clear()
hk8txs48

hk8txs482#

我实际上找到了一种解决这个问题的方法。请将您试图禁止其输出的代码行包含在以下行中

from IPython.utils import io
with io.capture_output() as captured:
    # Enter code here

在我的例子中,该单元具有以下代码

from IPython.utils import io
with io.capture_output() as captured:
     !python train.py --logtostderr --train_dir=/content/drive/My\ Drive/ocr_resized_train_checkpoints/ --pipeline_config_path=/content/frcnn_inception.config

我希望这对某人有帮助。如果有任何问题请告诉我。

brgchamk

brgchamk3#

嗨,Git什·马里佩迪,
所以我遇到了同样的问题,虽然这不是最优雅的方式,我已经想出了一个黑客,使其工作.我所做的是使用线程模块和数组循环一堆数字到数组和线程我的输出.清除()函数沿着训练我的模型。我今晚才想出这个,所以我将使用时间模块开发一个更好的版本,因为这个版本是硬编码的。

from google.colab import output
    import threading

    #holds time in secs.
    times = []

    #this 6000 represents 100 mins
    for y in range(6000):
        #every 5mins
        if y %300==0:
        #append this number
        times.append(y)
    else:
        continue
    #this function holds are output.clear()
    def gfg():
        output.clear()
    #for the length of the array times
    for x in range(len(times)):

        #start threading with the Timer module each element of the array
        #and when times[x] arrives use function gfg to clear console.
        timer = threading.Timer(times[x],gfg)
        timer.start()

    #your darknet training command 
    !./darknetdetectortrain

我的下一个版本将能够无限期地继续下去,直到工作环境爆炸或者你让火车停下来。FYI如果您运行此脚本,并且希望更改时间以及脚本清除输出所需的时间,请重置运行时间,因为您将开始出现问题。

wlwcrazw

wlwcrazw4#

%%capture
同样有效

%%capture
!python train.py --logtostderr --train_dir=/content/drive/My\ Drive/ocr_resized_train_checkpoints/ --pipeline_config_path=/content/frcnn_inception.config
ff29svar

ff29svar5#

这是一个部分解,但您也可以将拟合方法中的verbose参数指定为0以获得无输出,或指定为2以获得减少的输出。
您还可以使用TensorBoard查看正在发生的事情。

acruukt9

acruukt96#

我设了一条捷径

Ctrl+Shift+C组合键

清除所有输出。只需在快捷方式下设置即可。

相关问题