在tensorflow中使用while操作时陷入无限循环

时间:2016-02-22 17:32:14

标签: python tensorflow

要在tensorflow中并行裁剪一批图像,我使用了这些代码行:

def cropImage(ind,input,output,d):
    input_t=input.read(ind)
    return ind+1,input,output.write(ind,tf.random_crop(input_t,d)),d
def image_crop(t,batchsize ,dims):
    c= lambda _ind,_1,_2,_3: control_flow_ops.math_ops.less(_ind, batchsize)
    ind = tf.Variable(0,'iter')
    output_ta = tensor_array_ops.TensorArray(
        dtype='float32', size=batchsize,
        tensor_array_name="dynamic_crop_output")
    input_ta = tensor_array_ops.TensorArray(
        dtype='float32', size=batchsize, 
        tensor_array_name="dynamic_crop_intput")
    input_ta.unpack(t)
    _1,_2,output,_3=control_flow_ops.While(c,cropImage,[ind,input_ta,output_ta,tf.constant(dims,name='dims')])
    o = output.pack()
    o.set_shape( [None] + list(dims))
    return o

我的问题是这个问题:如果我没有把指令o.set_shape( [None] + list(dims))放在看似无限循环的程序中,为什么?

0 个答案:

没有答案