我正在使用谷歌云机器学习的beta版,并使用tensorflow进行超参数调优的设置。
在超参数调优的一些子运行中,我的损失值变成了NaN,导致计算崩溃,进而停止了超参数调优作业。
Error reported to Coordinator: <class 'tensorflow.python.framework.errors.InvalidArgumentError'>, Nan in summary histogram for: softmax_linear/HistogramSummary [[Node: softmax_linear/HistogramSummary = HistogramSummary[T=DT_FLOAT, _device="/job:master/replica:0/task:0/cpu:0"](softmax_linear/HistogramSummary/tag, softmax_linear/softmax_linear)]] Caused by op u'softmax_linear/HistogramSummary', defined at: File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
处理这些情况的标准方法是什么?我应该保护损失函数吗?
谢谢
回答:
您应该通过检查NaN来保护损失函数。任何由程序抛出的崩溃或异常都被云ML视为试验的失败,如果有足够多的试验失败,整个作业将会失败。
如果试验在没有设置任何超参数摘要的情况下干净地退出,该试验将被视为不可行,类似这些的超参数将不太可能再次被尝试,但这不会被视为错误。