我用我的自定义数据集(调整大小的图像1280x1080)训练了更快的nas模型。我的GPU是Nvidia Quadro P5000,我可以在这台计算机上测试模型。 当我用GTX 1060测试时,它崩溃并给出内存错误。但是当我测试预先训练的更快的时候,它工作得很好
预培训模型和定制模型之间有什么区别? 有没有办法用1060运行该模型?或者是否有任何批次大小或类似参数需要更改以进行测试
我所做的:我限制了我的gpu,发现我需要至少8gb的gpu来测试我的模型
完全错误:
ResourceExhaustedError:发现2个根错误。 (0)资源耗尽:当分配器GPU\U 0\bfc分配形状为[5004032,17,17]且类型为float on/job:localhost/replica:0/task:0/device:GPU:0的张量时,出现OOM [{{节点MaxPool2D/MaxPool-0-TransposeHWCTONCHW-LayoutOptimizer}] 提示:如果您想在OOM发生时查看已分配的张量列表,请在OOM上添加report_tensor_allocations_on_to RunOptions以获取当前分配信息
[[SecondStagePostprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Sum/_275]] 提示:如果您想在OOM发生时查看已分配的张量列表,请在OOM上添加report_tensor_allocations_on_to RunOptions以获取当前分配信息
(1)资源耗尽:当分配器GPU\U 0\bfc分配形状为[5004032,17,17]且类型为float on/job:localhost/replica:0/task:0/device:GPU:0的张量时,出现OOM [{{节点MaxPool2D/MaxPool-0-TransposeHWCTONCHW-LayoutOptimizer}] 提示:如果您想在OOM发生时查看已分配的张量列表,请在OOM上添加report_tensor_allocations_on_to RunOptions以获取当前分配信息
0成功的操作。 忽略0个派生错误
对于您的问题1:预培训模型和定制模型之间有什么区别
这与您是将训练该模型还是仅将该模型用于推理不同
因此,当您使用模型进行推理时与训练模型时相比,所需的内存将非常小。
但是,当您使用Tensorflow GPU对模型进行训练时,这需要更多的内存而不是仅使用CPU的训练,但是执行时间更快,尤其是在处理复杂模型架构时(即更快的RCNN)
当模型使用计算重层与卷积层类似时,这一点也很明显,因为由于更多内存的成本,计算的速度将更大
问题2:是否有办法使用1060运行该模型?或者是否有任何批次大小或类似参数需要更改以进行测试
当测试或推断时,数据长度通常是任意的,您可以在第一个参数为
input_shape = (None, ##,##)
时检查这一点。这意味着模型将接受任何不同长度的数据lowest data_length = 1
这意味着您只能在输入形状
ie. (None, BATCH_SIZE, ##, ##)
中明确定义时使用批次大小,或使用长度为批次大小ie. (BATCH_SIZE, ##, ##)
的数据馈送模型避免记忆错误的一种方法是更改模型的
batch_size
参数。预测和模型。将训练到一个较低的值,这也会提高模型的精度,但训练时间会更长另一种方法是将数据集转换为数据集生成器,该生成器将缓存数据,而不是将数据直接加载到内存中
您可以在此link上阅读更多关于在Tensorflow中构建输入管道的信息
相关问题 更多 >
编程相关推荐