【问题标题】:ADVI on pymc3 on gpugpu上pymc3上的ADVI
【发布时间】:2017-04-12 12:03:22
【问题描述】:

按照这个例子: http://twiecki.github.io/blog/2016/07/05/bayesian-deep-learning/,可以使用每个变量的 float32 值在 gpu 上训练网络。

奇怪的是,如果更多的层被传递到神经网络(例如 5 层,每层有 800 个神经元),或者当使用更少的层将神经元的数量设置为更高的值时,我会收到如下错误消息:

0%| | 1/50000 [00:00最后一次调用):

文件“/opt/pycharm-community-2016.3.2/helpers/pydev/pydevd.py”,第 1596 行,>in globals = debugger.run(setup['file'], None, None, is_module)

文件“/opt/pycharm-community-2016.3.2/helpers/pydev/pydevd.py”,第 974 行,在 >run pydev_imports.execfile(file, globals, locals) # 执行脚本

文件“/home/d1211/PycharmProjects/BNN/withLasagne.py”,第 342 行,在 v_params, trace, ppc, y_pred = run_advi(likelihood)

文件“/home/d1211/PycharmProjects/BNN/withLasagne.py”,第 299 行,在 >run_advi total_size=total_size, learning_rate=1e-2, epsilon=1.0

文件“/home/d1211/pythonpath/lib/python/Theano-0.9.0-py2.7.egg/theano/configparser.py”,第 117 行,在 res 返回 f(*args, **kwargs)

文件“/home/d1211/pythonpath/lib/python/pymc3-3.1rc3-py2.7.egg/pymc3/variational/advi_minibatch.py​​”,第 528 行,在 advi_minibatch 中

raise FloatingPointError('NaN 发生在 ADVI 优化中。')

FloatingPointError: NaN 在 ADVI 优化中发生。

另一方面,当使用 float64 变量时没有错误。

所以我猜想必须存储的变量数量太大,但我不明白这是如何连接到 float32/float64 值的,这只是精度的平均值。

你能帮我理解一下吗?

【问题讨论】:

  • 真丢脸,从我的巨大层到 10 个神经元的输出的权重太小,无法用 float32 整数计算。所以完全没有问题

标签: neural-network pymc3


【解决方案1】:

真遗憾,从我的巨大层到 10 个神经元的输出的权重太小,无法通过 float32 整数计算。所以完全没有问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 2021-04-06
    • 2019-09-25
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多