我需要在我的内部创建一个随机变量model_fn()
,具有形状[batch_size, 20]
。
我不想batch_size
作为参数传递,因为那样我就不能使用不同的批量大小进行预测。
删除与此问题无关的部分,我的 model_fn() 是:
def model(inp, out):
eps = tf.random_normal([batch_size, 20], 0, 1, name="eps"))) # batch_size is the
# value I do not want to hardcode
# dummy example
predictions = tf.add(inp, eps)
return predictions, 1
如果我替换[batch_size, 20]
为inp.get_shape()
,我得到
ValueError: Cannot convert a partially known TensorShape to a Tensor: (?, 20)
运行时myclf.setup_training()
。
如果我尝试
def model(inp, out):
batch_size = tf.placeholder("float", [])
eps = tf.random_normal([batch_size.eval(), 20], 0, 1, name="eps")))
# dummy example
predictions = tf.add(inp, eps)
return predictions, 1
我得到ValueError: Cannot evaluate tensor using eval(): No default session is registered. Use
了 sess.as_default() or pass an explicit session to eval(session=sess)
(可以理解,因为我没有提供 feed_dict)
如何访问batch_size
inside的值model_fn()
,同时在预测期间保持能够更改它?