Keras自定义功能非常慢

时间:2017-11-11 02:54:44

标签: tensorflow deep-learning keras custom-function

我写了一个自定义丢失函数,但它非常慢。只需要几个小时的模型编译。它背后的原因是什么?有什么方法可以优化这段代码,以便它可以变得更快?

打印'2完成'后所需的大部分处理时间。

def Loss(y_true, y_pred)  
.
some code
.
w = np.random.random( 5, 10, 8, 8, 3))
# tile to 5D
y_true = np.tile(y_true, (5, 1, 1, 1, 1))
y_pred = np.tile(y_pred, (5, 1, 1, 1, 1))

print('1 done')

x = np.sum(y_pred*w, axis=(3, 4), keepdims=True)
y = np.sum(y_true*w, axis=(3, 4), keepdims=True)

print('2 done')


x2 = np.sum((w* y_pred)**2, axis=(3, 4), keepdims=True) - x**2
y2 = np.sum((w* y_true)** 2, axis=(3, 4), keepdims=True) - y**2

print('2.5 done')

xy = np.sum(w * y_pred * y_true, axis=(3, 4), keepdims=True) - x * y
.
some code
.
return Loss

损失函数: def custom_loss(y_true, y_pred):
return Loss(y_true, y_pred)

0 个答案:

没有答案