发新帖

从mooc过来,求助test程序中,调试时显示内存100%被占用

[复制链接]
864 4
进阶提问
操作系统和版本 (OS Platform and Distribution): win8
TensorFlow 版本 (TensorFlow version): 1.10.0
TensorFlow 是从哪里安装的 (TensorFlow installed from): 下载的二进制文件 (from binary)
GCC/编译器版本 (Compiler version): -
Bazel 版本 (Bazel version): -
Python 版本 (Python version): 3.7
CUDA/cuDNN 版本 (CUDA/cuDNN version):
GPU 型号和显存大小 (GPU model & memory): 940M
内存大小 (Memory): 运行内存,4GB
是否有自定义的配置代码 (Have I written custom code): 不清楚 / Don't know
问题类型 (type): 其他,请在主贴区注明 (Other, please fill in the post)
描述自己的职业和机器学习技能 (Describe your job/learning and ML experiences): -
代码片段 (Code snippets): -
错误日志 (Error logs): -
描述可复现问题的相关信息 (Exact command to reproduce): -
GitHub Issue 链接 (如果有): -

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
想要使用CNN实现手写字符识别,forward文件和backward文件都可以运行,到test文件时特别卡,计算不出准确率,代码是照着老师的写的,出现报错说占用内存太多,然后就一直不出结果,究竟是什么原因呢???1.mnist_lenet5_forward.py
  1. # -*- coding: utf-8 -*-
  2. import tensorflow as tf
  3. IMAGE_SIZE=28
  4. NUM_CHANNELS=1
  5. CONV1_SIZE=5
  6. CONV1_KERNEL_NUM=32
  7. CONV2_SIZE=5
  8. CONV2_KERNEL_NUM=64
  9. FC_SIZE=512
  10. OUTPUT_NODE=10

  11. def get_weight(shape,regularizer):
  12.     w=tf.Variable(tf.truncated_normal(shape,stddev=0.1))
  13.     if regularizer !=None:tf.add_to_collection('losses',tf.contrib.layers.l2_regularizer(regularizer)(w))
  14.     return w

  15. def get_bias(shape):
  16.     b=tf.Variable(tf.zeros(shape))
  17.     return b

  18. def conv2d(x,w):
  19.     return tf.nn.conv2d(x,w,strides=[1,1,1,1],padding='SAME')

  20. def max_pool_2x2(x):
  21.     return tf.nn.max_pool(x,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME')

  22. def forward(x,train,regularizer):
  23.     conv1_w=get_weight([CONV1_SIZE,CONV1_SIZE,NUM_CHANNELS,CONV1_KERNEL_NUM],regularizer)
  24.     conv1_b=get_bias([CONV1_KERNEL_NUM])
  25.     conv1=conv2d(x,conv1_w)
  26.     relu1=tf.nn.relu(tf.nn.bias_add(conv1,conv1_b))
  27.     pool1=max_pool_2x2(relu1)

  28.     conv2_w = get_weight([CONV2_SIZE, CONV2_SIZE, CONV1_KERNEL_NUM, CONV2_KERNEL_NUM], regularizer)
  29.     conv2_b = get_bias([CONV2_KERNEL_NUM])
  30.     conv2 = conv2d(pool1, conv2_w)
  31.     relu2 = tf.nn.relu(tf.nn.bias_add(conv2, conv2_b))
  32.     pool2 = max_pool_2x2(relu2)

  33.     pool_shape=pool2.get_shape().as_list()
  34.     nodes=pool_shape[1]*pool_shape[2]*pool_shape[3]
  35.     reshaped=tf.reshape(pool2,[pool_shape[0],nodes])

  36.     fc1_w=get_weight([nodes,FC_SIZE],regularizer)
  37.     fc1_b=get_bias(FC_SIZE)
  38.     fc1=tf.nn.relu(tf.matmul(reshaped,fc1_w)+fc1_b)
  39.     if train:fc1=tf.nn.dropout(fc1,0.5)

  40.     fc2_w=get_weight([FC_SIZE,OUTPUT_NODE],regularizer)
  41.     fc2_b=get_bias([OUTPUT_NODE])
  42.     y=tf.matmul(fc1,fc2_w)+fc2_b
  43.     return y
复制代码

我知道答案 回答被采纳将会获得10 金币 + 10 金币 已有4人回答
本楼点评(0) 收起

精彩评论4

舟3332  TF芽芽  发表于 2018-10-9 00:25:58 来自手机  | 显示全部楼层
数据规模 尤其是 batch size 减小一点试试?
本楼点评(0) 收起
by叮咚  TF荚荚  发表于 2018-10-9 08:09:07 来自手机  | 显示全部楼层
嗯,batch_size减小到10啦还是卡。有分析说是因为安装的python版本与电脑版本不符合,64位或者32位,这是可能的吗?
本楼点评(0) 收起
舟3332  TF芽芽  发表于 2018-10-15 18:35:37 来自手机  | 显示全部楼层
by叮咚 发表于 2018-10-9 08:09
嗯,batch_size减小到10啦还是卡。有分析说是因为安装的python版本与电脑版本不符合,64位或者32位,这是可 ...

可以试试
本楼点评(0) 收起
by叮咚  TF荚荚  发表于 2018-10-16 12:27:36 来自手机  | 显示全部楼层
舟3332 发表于 2018-10-15 18:35
可以试试

好像不是这个原因,方便的话能帮忙调试一下test程序吗?
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

快速回复 返回顶部 返回列表