2017-12-18 80 views
1

我想使用Tensorflow的估计器来简化使用LSTM Networks的培训。显然,使用tensorflow的估算,必须定义模型功能,像这样:使用LensMs的Tensorflow估计器接受图像

def some_model_fn(features, labels, mode): 
    ... 

我使用占位符来获得的输入和标签都没有问题。如何将图像转换为tensorflow lstms接受的形状,即[batch_size,num_time_steps,num_features]?

+0

除非您正在实现自己的图层(如卷积/ lstm),否则在将图像送入LSTM之前,您需要将图像变平。你可以用'np.flatten()'来做到这一点。对于'num_time_steps',你需要给LSTM提供后续的图像(如滚动窗口)。如果你没有处理有助于预测下一个图像的连续图像,那么你可能会更好地使用卷积网络或者调整图像平坦化策略(比如将像素的行或列送入LSTM中,等等)。 – umutto

+0

任务是手写识别,我用垂直条形图像进行输入。我先阅读图像,然后转置它来做到这一点。 –

回答

0

我建议使用numpy将图像加载到多维数组。这确实需要相当多的内存,这取决于图像大小和时间步数。

+0

我要问的是,我必须将图像尺寸折叠为变暗,还是在读取图像时喂食图像? –

+0

是的,你必须调整它们。您可以使用cv2.resize或scipy.misc.imresize调整图像大小。如果您的网络功能作为一维矢量输入,则可以在调整大小后平铺图像。 – Totoro