You can use the value you want. I still need to understand the result of your previous code.
Fred Le 30 juil. 2016 01:00, "Varglur" <[email protected]> a écrit : > c_without_inf = theano.tensor.set_subtensor(c[inf_idx], -999) > > > may I ask why should we set "inf" to -999 ?? > > > 在 2016年7月30日星期六 UTC+9上午11:57:32,Varglur写道: >> >> >> thanks a lot, Fred. >> >> I define a theano function as below : >> x = T.fmatrix() >> y = T.fmatrix() >> z = x / y >> f = theano.function([x,y],z) >> >> >> and give >> a = array([[ 0., 1., 2.], >> >> [ 3., -4., 5.]], dtype=float32) >> >> >> >> *b = array([[ 0., 1., 0.], [ 1., 0., 1.]], >> dtype=float32)* >> f (a,b) = array([[ nan, 1., inf], >> >> [ -0., -inf, 5.]], dtype=float32) >> >> >> as can we see from denominator b , there are 0 in b. >> >> could we modify "z= x/y " to process all the cases?? >> >> >> >> >> 在 2016年7月30日星期六 UTC+9上午2:40:37,nouiz写道: >>> >>> Just to be sure, oou want to replace inf/nan with a numerical value in >>> Theano? This can be done like this: >>> >>> import numpy as np >>> >>> a = np.array([0,0,1,1,2], dtype='float') >>> b = np.array([0,1,0,1,3], dtype='float') >>> with np.errstate(divide='ignore', invalid='ignore'): >>> c = np.true_divide(a,b) >>> >>> import theano.tensor as T >>> import theano >>> c=theano.tensor.as_tensor_variable(c) >>> inf_mask = T.isinf(c) >>> nan_mask = T.isnan(c) >>> inf_idx = inf_mask.nonzero() >>> nan_idx = nan_mask.nonzero() >>> >>> c_without_inf = theano.tensor.set_subtensor(c[inf_idx], -999) >>> c_without_inf_nan = theano.tensor.set_subtensor(c_without_inf[nan_idx], >>> 0) >>> c_without_inf_nan.eval() >>> array([ 0.00000000e+00, 0.00000000e+00, -9.99000000e+02, >>> 1.00000000e+00, 6.66666667e-01]) >>> >>> I don't know if it make a difference between inf and -inf. >>> >>> Fred >>> >>> >>> >>> On Thu, Jul 28, 2016 at 11:52 PM Varglur <[email protected]> wrote: >>> >>>> dear all, >>>> >>>> similar to problem in numpy here >>>> <http://stackoverflow.com/questions/26248654/numpy-return-0-with-divide-by-zero> >>>> >>>> if element wise divide in theano , are there corresponding function >>>> in theano as this answer in numpy ? >>>> >>>> numpy answer: >>>> >>>> import numpy as np >>>> >>>> a = np.array([0,0,1,1,2], dtype='float') >>>> b = np.array([0,1,0,1,3], dtype='float') >>>> with np.errstate(divide='ignore', invalid='ignore'): >>>> c = np.true_divide(a,b) >>>> c[c == np.inf] = 0 >>>> c = np.nan_to_num(c) >>>> print('c: {0}'.format(c)) >>>> >>>> Output: >>>> >>>> c: [ 0. 0. 0. 1. 0.66666667] >>>> >>>> >>>> >>>> how to process inf and nan problem when 0/0 or 1/0 problem in theano?? >>>> >>>> thanks >>>> >>>> >>>> >>>> -- >>>> >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "theano-users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- > > --- > You received this message because you are subscribed to the Google Groups > "theano-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- --- You received this message because you are subscribed to the Google Groups "theano-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
