コード例 #1
0
 def __init__(
     self,
     data,
     batch_size=128,
     dtype=None,
     broadcastable=None,
     name="Minibatch",
     random_seed=42,
     update_shared_f=None,
     in_memory_size=None,
 ):
     if dtype is None:
         data = pm.smartfloatX(np.asarray(data))
     else:
         data = np.asarray(data, dtype)
     in_memory_slc = self.make_static_slices(in_memory_size)
     self.shared = theano.shared(data[in_memory_slc])
     self.update_shared_f = update_shared_f
     self.random_slc = self.make_random_slices(self.shared.shape,
                                               batch_size, random_seed)
     minibatch = self.shared[self.random_slc]
     if broadcastable is None:
         broadcastable = (False, ) * minibatch.ndim
     minibatch = tt.patternbroadcast(minibatch, broadcastable)
     self.minibatch = minibatch
     super().__init__(self.minibatch.type, None, None, name=name)
     theano.Apply(theano.compile.view_op,
                  inputs=[self.minibatch],
                  outputs=[self])
     self.tag.test_value = copy(self.minibatch.tag.test_value)
コード例 #2
0
 def __init__(self, generator):
     if not pm.vartypes.isgenerator(generator):
         raise TypeError("Object should be generator like")
     self.test_value = pm.smartfloatX(copy(next(generator)))
     # make pickling potentially possible
     self._yielded_test_value = False
     self.gen = generator
     self.tensortype = TensorType(self.test_value.dtype, ((False,) * self.test_value.ndim))
コード例 #3
0
ファイル: data.py プロジェクト: brandonwillard/pymc3
 def __init__(self, generator):
     if not pm.vartypes.isgenerator(generator):
         raise TypeError('Object should be generator like')
     self.test_value = pm.smartfloatX(copy(next(generator)))
     # make pickling potentially possible
     self._yielded_test_value = False
     self.gen = generator
     self.tensortype = tt.TensorType(
         self.test_value.dtype,
         ((False, ) * self.test_value.ndim))
コード例 #4
0
ファイル: model.py プロジェクト: hanbman/pymc3
def pandas_to_array(data):
    if hasattr(data, 'values'):  # pandas
        if data.isnull().any().any():  # missing values
            ret = np.ma.MaskedArray(data.values, data.isnull().values)
        else:
            ret = data.values
    elif hasattr(data, 'mask'):
        ret = data
    elif isinstance(data, theano.gof.graph.Variable):
        ret = data
    elif sps.issparse(data):
        ret = data
    elif isgenerator(data):
        ret = generator(data)
    else:
        ret = np.asarray(data)
    return pm.smartfloatX(ret)
コード例 #5
0
ファイル: model.py プロジェクト: bballamudi/pymc3
def pandas_to_array(data):
    if hasattr(data, 'values'):  # pandas
        if data.isnull().any().any():  # missing values
            ret = np.ma.MaskedArray(data.values, data.isnull().values)
        else:
            ret = data.values
    elif hasattr(data, 'mask'):
        ret = data
    elif isinstance(data, theano.gof.graph.Variable):
        ret = data
    elif sps.issparse(data):
        ret = data
    elif isgenerator(data):
        ret = generator(data)
    else:
        ret = np.asarray(data)
    return pm.smartfloatX(ret)
コード例 #6
0
ファイル: data.py プロジェクト: brandonwillard/pymc3
 def __init__(self, data, batch_size=128, dtype=None, broadcastable=None, name='Minibatch',
              random_seed=42, update_shared_f=None, in_memory_size=None):
     if dtype is None:
         data = pm.smartfloatX(np.asarray(data))
     else:
         data = np.asarray(data, dtype)
     in_memory_slc = self.make_static_slices(in_memory_size)
     self.shared = theano.shared(data[in_memory_slc])
     self.update_shared_f = update_shared_f
     self.random_slc = self.make_random_slices(self.shared.shape, batch_size, random_seed)
     minibatch = self.shared[self.random_slc]
     if broadcastable is None:
         broadcastable = (False, ) * minibatch.ndim
     minibatch = tt.patternbroadcast(minibatch, broadcastable)
     self.minibatch = minibatch
     super().__init__(self.minibatch.type, None, None, name=name)
     theano.Apply(
         theano.compile.view_op,
         inputs=[self.minibatch], outputs=[self])
     self.tag.test_value = copy(self.minibatch.tag.test_value)
コード例 #7
0
 def __next__(self):
     if not self._yielded_test_value:
         self._yielded_test_value = True
         return self.test_value
     else:
         return pm.smartfloatX(copy(next(self.gen)))
コード例 #8
0
ファイル: data.py プロジェクト: brandonwillard/pymc3
 def __next__(self):
     if not self._yielded_test_value:
         self._yielded_test_value = True
         return self.test_value
     else:
         return pm.smartfloatX(copy(next(self.gen)))