我尝试实现一个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,它似乎可以再次使用。
答案 0 :(得分:0)
它可能来自您的tensorflow版本。我使用与Tensorflow版本为1.10(而不是1.13.1)相同的版本尝试了您的代码,并且可以正常工作。