python 无法引用 tensorflow.keras_python – 使用Tensorflow的Keras:根据需要使用...

你确定你没有使用巨大的batch_size吗?

“添加数据”:说实话,我不知道这意味着什么,如果你能用代码准确描述你在这里做什么,那将会有所帮助.

样本数量不应该导致GPU内存出现任何问题.导致问题的是一个很大的batch_size.

加载庞大的数据集可能会导致CPU RAM问题,与keras / tensorflow无关. numpy数组太大的问题. (您可以通过简单地加载数据来测试“无需创建任何模型”)

如果这是您的问题,您应该使用生成器逐渐加载批次.同样,由于你的问题绝对没有代码,我们无能为力.

但这些只是简单地为图像创建生成器的两种形式:

>使用现有的ImageDataGenerator及其flow_from_directory()方法,explained here

>创建自己的编码生成器,可以是:

循环生成器的快速示例:

def imageBatchGenerator(imageFiles, imageLabels, batch_size):

while True:

batches = len(imageFiles) // batch_size

if len(imageFiles) % batch_size > 0:

batches += 1

for b in range(batches):

start = b * batch_size

end = (b+1) * batch_size

images = loadTheseImagesIntoNumpy(imageFiles[start:end])

labels = imageLabels[start:end]

yield images,labels

Warning: even with generators, you must make sure your batch size is not too big!

使用它:

model.fit_generator(imageBatchGenerator(files,labels,batchSize), steps_per_epoch = theNumberOfBatches, epochs= ....)

在GPU之间划分模型

您应该能够决定哪些GPU由哪个GPU处理,这“可能”可能会优化您的RAM使用率.

例如,在创建模型时:

with tf.device('/gpu:0'):

createLayersThatGoIntoGPU0

with tf.device('/gpu:1'):

createLayersThatGoIntoGPU1

#you will probably need to go back to a previous GPU, as you must define your layers in a proper sequence

with tf.device('/cpu:0'):

createMoreLayersForGPU0

#and so on

我不确定这会好不好,但也值得一试.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值