如何在 Keras 的 5 维数组上 运行 model.predict()?
How to run model.predict() on a 5 dimensional array in Keras?
我训练了一个二进制 classification 模型,该模型采用 (128x128x3) 图像,然后给出二进制值 0 或 1。然后我想拍摄更大的图像,比如 (nxmx3),并应用 windowing 函数并让模型 运行 对 each window.
进行预测
我使用 skimage.util.view_as_windows 将 (1024x1024x3) 图像转换为 (897,897,128,128,3) numpy 数组。我现在想 运行 每个 (i, j, 128,128,3) window 通过我的模型,然后把它放在同一个位置。最后,我想要一个 (897,897) 数组,其中包含 class 存在的概率。
我现在的做法需要一个 for 循环,它需要将近 1-2 分钟才能 运行 通过,同时随着包含模型预测的列表变大而变慢。
有没有办法矢量化这个过程?也许展平 numpy 数组,在其上 运行ning model.predict(),然后创建一个具有相同先前维度的二维数组?
您可以使用完全卷积网络,它使用滑动 window 来预测输出并且它不依赖于输入形状。用具有相同 output_shape 的卷积层替换完全连接的层,并在 (128x128x3) 数据集上对其进行训练。
如果您预测 1024x1024 输入图像,网络会为每个 128x128 区域预测一个标签。
我训练了一个二进制 classification 模型,该模型采用 (128x128x3) 图像,然后给出二进制值 0 或 1。然后我想拍摄更大的图像,比如 (nxmx3),并应用 windowing 函数并让模型 运行 对 each window.
进行预测我使用 skimage.util.view_as_windows 将 (1024x1024x3) 图像转换为 (897,897,128,128,3) numpy 数组。我现在想 运行 每个 (i, j, 128,128,3) window 通过我的模型,然后把它放在同一个位置。最后,我想要一个 (897,897) 数组,其中包含 class 存在的概率。
我现在的做法需要一个 for 循环,它需要将近 1-2 分钟才能 运行 通过,同时随着包含模型预测的列表变大而变慢。
有没有办法矢量化这个过程?也许展平 numpy 数组,在其上 运行ning model.predict(),然后创建一个具有相同先前维度的二维数组?
您可以使用完全卷积网络,它使用滑动 window 来预测输出并且它不依赖于输入形状。用具有相同 output_shape 的卷积层替换完全连接的层,并在 (128x128x3) 数据集上对其进行训练。
如果您预测 1024x1024 输入图像,网络会为每个 128x128 区域预测一个标签。