TensorFlow踩坑记(陆续上演……)已更新3记

1.TypeError: The value of a feed cannot be a tf.Tensor object. Acceptable feed values include Python scalars, strings, lists, numpy ndarrays, or TensorHandles.For reference,

错误原因: TensorFlow中,在开始训练时,feed_dict=的数据,必须是实实在在的数据而不能是张量流,也就是说可以直接用print()输出来。

如:

xs,ys = mnist.train.next_batch(BATCH_SIZE)
# print(xs)
reshped_xs = tf.reshape(xs,
                      [BATCH_SIZE,
                      mnist_inference.IMAGE_SIZE,
                      mnist_inference.IMAGE_SIZE,
                      mnist_inference.NUM_CHANNELS])
 xx=sess.run(reshped_xs)
 _,loss_value,step = sess.run([train_step,loss,global_step],
                             feed_dict={x:xx,y_:ys})

xs本来一开始是数据不是张量,但是经过tf.reshpae之后,就变成了一个张量,所以在喂给feed_dict前要先xx=sess.run(reshped_xs)

2. ValueError: setting an array element with a sequence.

错误原因: 一般来说这个错误是由于feed_dict的维度与定义的占位符维度不一致,导致feed之后变成了字符串。

例如:

TensorFlow中,feed_dict=的数据,不支持稀疏表示方式,需要.toarray()转换,如果不转换,就会出现这个错误。

sess.run([train_step,loss,global_step],
feed_dict={x:X[start:end].toarray(),y_:Y[start:end]})

3. Tensorflow训练时内存持续增加并占满.

2018年8月9日16:55:48

今天在跑程序的时候,内存一个劲儿的涨。本地不行拿到服务器上去跑,62G内存分分钟干没了,不知道问题出在哪儿。经过在网上的一番查找,才弄清楚。一句话说:在迭代循环时,不能再包含任何张量的计算表达式,包括以tf.开头的函数(如tf.nn.embedding_lookup

如果你非得计算,请在循环体外面定义好表达式,在循环中直接run

举例:

import tensorflow as tf

a = tf.Variable(tf.truncated_normal(shape=[100,1000]),name='a')
b = tf.Variable
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值