预测而不保存中间状态

时间:2017-06-30 18:37:04

标签: keras conv-neural-network predict

我使用小图片修补程序培训了一个(only-convs)网络,现在我在更大的图像上使用它。它工作得很好,除了当图像大得多时,我最终会失去记忆。

有没有办法预测网络输出而不保存中间状态(用于计算反向传递?)

我只需要前向传递的输出,而我根本没有用于后向传递的渐变(网络已经训练过)。

Ps:我已经尝试将更大的图像分割成补丁,但这样做会破坏空间相关性(特别是在每个补丁的边界上)。

编辑:我发布了用于预测给定img的函数(python中的代码)。它需要img,调整到适当的形状和值范围,预测和返回:

def predictImg(img_name,autoencoder):
   img = np.asarray(Image.open(img_name)).astype('float32')
   img2 = np.expand_dims(np.transpose(img.astype('float32')[:,:,:3],(2,0,1))/255.0,0)  # setting up for shape (sample,channels,x,y), ranging between [0,1]
   prediction = autoencoder.predict(img2)
   return np.transpose(np.round(np.clip(prediction[0]*255,0,255)),(1,2,0)) # getting a [0,255] image (discretized color values)

0 个答案:

没有答案