我正在将Keras与tensorflow后端一起使用以解决图像分类问题。最初,我采用一种幼稚的方法将文件中的所有图像加载到一个数组中,然后将其传递给Keras fit()函数。只要我使用图像的缩略图,此功能就可以使用,但是最近我决定使用原尺寸的图像。
当我遇到以下错误时,我没有再尝试过此操作:
2018-10-18 20:39:14.486023:W tensorflow / core / common_runtime / bfc_allocator.cc:275]分配器(mklcpu)内存不足,试图分配63.50GiB。当前分配摘要如下。 2018-10-18 20:39:14.490332:I tensorflow / core / common_runtime / bfc_allocator.cc:630] Bin(256):总块数:24,正在使用的块数:22。6.0KiB分配给块。料仓中使用了5.5KiB。 bin中要求使用2.8KiB客户端。
这当然不足为奇,因为每张图像超过1 MB,我大约有5000张。问题是要怎么做。
一种可能的简单方法是简单地加载少量图像,然后一次调用一次约有10张图像的fit()函数。我想知道的是Keras和Tensorflow是否可以为这个问题提供更好,更优雅的解决方案。我实质上是在考虑每次加载批处理时都会执行的回调类型函数,在该函数中,我会手动将文件读入位图以馈入优化器。
我不需要详细的答案-如果有人能以一般的方式将我指向文档的正确区域,我将不胜感激。