I use dynamic size as 

`[[(3, x ,x), 256*8] for x in range(160, 225, 8)]`

and I got "out of memory" when change the size every three epoch:

```
terminate called after throwing an instance of 'dmlc::Error'
  what():  [11:37:28] src/engine/./threaded_engine.h:359: [11:37:28] 
src/storage/./pooled_storage_manager.h:107: cudaMalloc failed: out of memory

```
my dataiter is like:

```
class data_iter(object):
    def __init__(self, istrain=0, num_round=3):
        self.data = get_data()
        self.iter = 0
        self.istrain = 1
        self.numepoch = 0
        self.num_round = num_round
        
    def next(self):
        return self.data[self.iter][self.istrain].next()

    def __iter__(self):
        return self

    @property
    def provide_data(self):
        return self.data[self.iter][self.istrain].provide_data

    @property
    def provide_label(self):
        return self.data[self.iter][self.istrain].provide_label

    def __next__(self):
        return self.next()

    def reset(self):
        self.data[self.iter][self.istrain].reset()
        self.numepoch += 1
        if self.numepoch % self.num_round == 0 and self.iter != -1:
            self.iter += 1
        if self.iter >= len(self.data):
            self.iter = -1
```
Where get_data() is the list of multiple data_iter.



[ Full content available at: 
https://github.com/apache/incubator-mxnet/issues/12460 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to