打印keras后端eval使内核崩溃

时间:2019-04-26 14:18:52

标签: python keras

我尝试实现一个keras后端函数f,该函数将在自定义损失函数中使用。当我计算f(x, y)或什至K.eval(f(x, y))时就可以了,但是打印K.eval(f(x, y))会使内核崩溃。

Pycharm写作

  

以退出代码-1073741819(0xC0000005)完成的过程

Jupyter笔记本输出

  

“内核崩溃,它将自动重启”。

在终端中运行它也会使python崩溃。

我尝试卸载并重新安装keras。我有python 3.6,keras 2.2.4,tensorflow 1.13.1和numpy 1.15.2。操作系统是Windows 10。

一个最小的例子:

from keras import backend as K
import numpy as np    

def f(x, y):
    return x + y

b = K.constant(np.array([1, 0, 0, 0]))
c = K.constant(np.array([0, 1, 0, 1]))
# this works if you comment the rest out :
evaluation = K.eval(f(b, c))
# this KILLS the freaking KERNEL !!!
print(evaluation)

解决方案(?)

我将numpy更新为1.16.3,它似乎可以再次使用。

1 个答案:

答案 0 :(得分:0)

它可能来自您的tensorflow版本。我使用与Tensorflow版本为1.10(而不是1.13.1)相同的版本尝试了您的代码,并且可以正常工作。