Skip to content

Commit 0d2dd1a

Browse files
authored
Merge pull request #11570 from JiayiFeng/dev_support_dynamic_size_recordio
make data_feeder support dynamic shape
2 parents 25241e9 + dfe54a4 commit 0d2dd1a

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

python/paddle/fluid/data_feeder.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ def __init__(self, place, lod_level, shape, dtype):
2929
self.place = place
3030
self.lod_level = lod_level
3131
self.shape = shape
32+
negtive_count = 0
33+
for s in self.shape:
34+
if s < 0:
35+
negtive_count += 1
36+
if negtive_count > 1:
37+
self.shape = None
38+
break
3239
if dtype == core.VarDesc.VarType.FP32:
3340
self.dtype = 'float32'
3441
elif dtype == core.VarDesc.VarType.INT64:
@@ -61,7 +68,9 @@ def _feed_impl_(self, data, lod, lod_level):
6168
self._feed_impl_(each_data, lod[1:], lod_level - 1)
6269

6370
def done(self):
64-
arr = numpy.array(self.data, dtype=self.dtype).reshape(self.shape)
71+
arr = numpy.array(self.data, dtype=self.dtype)
72+
if self.shape:
73+
arr = arr.reshape(self.shape)
6574
t = core.LoDTensor()
6675
t.set(arr, self.place)
6776
if self.lod_level > 0:

0 commit comments

Comments
 (0)