当前位置: 首页 > 知识库问答 >
问题:

Tensorflow CPU内存问题(分配超过系统内存的10%)

韩照
2023-03-14

我使用Keras/Tensorflow在python中创建了一个程序。我对数据的创建和训练没有任何问题。但是,当我想评估我的模型时,我有以下错误:

Using TensorFlow backend.
WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:4213: sparse_to_dense (from tensorflow.python.ops.sparse_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Create a `tf.sparse.SparseTensor` and use `tf.sparse.to_dense` instead.
2018-12-05 19:20:44.932780: W tensorflow/core/framework/allocator.cc:122] Allocation of 3359939800 exceeds 10% of system memory.
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Abandon (core dumped)

这似乎是一个内存分配问题。我缩小了模型的尺寸,缩小了所有参数,但没有任何变化。我不知道如何解决这个问题。

共有1个答案

拓拔弘亮
2023-03-14

根据我的经验,此类问题的一个常见原因是,我们在培训中使用了合理的批量大小,但在评估时尝试使用更大的批量大小(通常是整个数据集)。

我发现自己做这类事情是错误的:

model.fit(x_train, y_train, epochs=5, batch_size=10)
model.evaluate(x_test, y_test)

鉴于我们确实需要这样做:

model.fit(x_train, y_train, epochs=5, batch_size=10)
model.evaluate(x_test, y_test, batch_size=10)
 类似资料:
  • 使用ResNet50预训练的权重我试图构建一个分类器。代码库完全在Keras高级Tensorflow API中实现。完整的代码发布在下面的GitHub链接中。 源代码:使用RestNet50架构进行分类 预训练模型的文件大小为94.7mb。 我加载了预先训练过的文件 并符合模型 在训练数据集中,我有两个文件夹狗和猫,每个文件夹持有近10,000张图像。当我编译脚本时,我得到以下错误 纪元1/1 2

  • 问题内容: 每次从stdin读取字母“ u”时,此代码段将分配2Gb,并且在读取“ a”后将初始化所有分配的字符。 我在具有3Gb内存的linux虚拟机上运行此代码。在使用htop工具监视系统资源使用情况时,我已经意识到malloc操作不会反映在资源上。 例如,当我仅输入一次“ u”(即分配2GB的堆内存)时,我看不到htop中的内存使用量增加2GB。只有当我输入“ a”(即初始化)时,我才会看到

  • 我用Tensorflow后端在Keras上做了一个CNN,我的训练集有144个例子,但是每个例子的大小为3200*101。我的CNN是非常基本的,只是为了学习,batch_size2(我试着从32减少,但没有任何改善)。一个CNN层,一个展平层和一个密集层用于输出(11类)。当我符合模型时,我的笔记本电脑显示“分配(一个大数字)超过系统内存的10”,然后冻结,即使没有运行1个时代。我不能“压缩”这

  • script/下的memstat.sh或者ps_mem.py都可以查看系统的内存情况,两个工具都需要root权限。

  • 我使用Python/Numpy中的一个函数来解决组合博弈论中的一个问题。 然后我在Julia中编写了它,因为我认为它会更快,因为Julia使用即时编译。 但第二个版本要慢得多。对于c=10000,Python版本需要2.5秒。在核心i5处理器上,Julia版本需要4.5秒。由于Numpy操作是用C实现的,我想知道Python是否真的更快,或者我是在编写一个具有浪费时间复杂性的函数。 Julia中的

  • #!/bin/bash # Get current swap usage for all running processes # Erik Ljungstrom 27/05/2011 # Modified by Mikko Rantalainen 2012-08-09 # Pipe the output to "sort -nk3" to get sorted output # Modified