You need to sign in or sign up before continuing.
range op返回数据的shape有问题
Created by: Ashleychen
在用range op的时候发现当start和end之间的间隔很大(我用的是20000263)的时候,返回的数据shape有问题,返回的range的shape为[20000264,],当start和end之间的间隔较小(如200多)的时候则不会出现这个问题。
我看官网的说明是说:
但是我的step并不是浮点数。以下给出了一个demo,可直接运行。
import numpy
import paddle.fluid as fluid
#data_size=20000263
#data_size=20000259
data_size=259
data = fluid.layers.data(name="data", shape=[data_size, 1], dtype="int64")
test = fluid.layers.range(0, data_size, 1, dtype='int64')
fluid.layers.Print(input=test, summarize=0)
pred = fluid.layers.cast(x=test, dtype='float32')
pred = fluid.layers.reshape(x=pred, shape=[-1, 1])
pred = fluid.layers.fc(pred, size=1)
loss = fluid.layers.reduce_mean(pred)
optimizer = fluid.optimizer.SGD(learning_rate=1e-3)
optimizer.minimize(loss)
place = fluid.CPUPlace()
exe = fluid.Executor(place=place)
exe.run(fluid.default_startup_program())
tensor = fluid.core.LoDTensor()
tensor.set(numpy.zeros((data_size, 1), dtype='int64').reshape([-1, 1]), fluid.CPUPlace())
results = exe.run(fluid.default_main_program(), feed={'data': tensor},
fetch_list=pred, return_numpy=False)
请问为什么会出现这个问题,是不是bug,如果不是bug的话要怎么绕过这个问题?