Fei Tao
2017-10-21 22:12:58 UTC
*Hi, dear all,*
*I ran theano with Keras. I run a very simple toy example with CTC loss.
The code is listed as below:*
batch_size = 32
frame_len = 3600
output_len = 600
nb_feat = 64
nb_class = 63
nb_output = nb_class + 1 # add output for blank
inner_dim = 16
def ctc_lambda_func(args):
y_pred, labels, input_length, label_length = args
# the 2 is critical here since the first couple outputs of the RNN
# tend to be garbage:
y_pred = y_pred[:, 2:, :]
scale = 1
return K.ctc_batch_cost(labels, y_pred, input_length, label_length,scale)
input_data = Input(name='the_input', shape=(frame_len,nb_feat))
lstm1 = GRU(inner_dim,return_sequences = True, name='lstm1')(input_data)
y_pred = TimeDistributed(Dense(nb_output,activation='softmax',name='dense1'))(lstm1)
Model(inputs=input_data, outputs=y_pred).summary()
labels = Input(name='the_labels', shape=[output_len])
input_length = Input(name='input_length', shape=[1], dtype='int32')
label_length = Input(name='label_length', shape=[1], dtype='int32')
loss_out = Lambda(ctc_lambda_func, output_shape=(1,), name='ctc')([y_pred, labels, input_length, label_length])
model = Model(inputs=[input_data, labels, input_length, label_length], outputs=loss_out)
data = np.random.uniform(low = -5, high = 5, size = (batch_size, frame_len, nb_feat)).astype('float32')
# Dummy labels in range [1,nb_class]. 0 = <blank>
label = 1 + np.random.randint(nb_class, size = (batch_size, output_len)).astype('float32')
length = np.ones((batch_size,1),dtype='float32')*frame_len
output_length = np.ones((batch_size,1),dtype='float32')*output_len
input_dict = {'the_input':data,'the_labels':label,'input_length':length,'label_length':output_length}
output_dict = {'ctc':np.zeros([batch_size])}
opt = SGD(lr=0.001, decay=1e-6, momentum=0.9, clipnorm=1.,clipvalue=0.5)
# opt = Adam(clipnorm=1.,clipvalue=0.5)
model.compile(loss={'ctc': lambda y_true, y_pred: y_pred}, optimizer=opt)
model.summary()
*I find I have gradients of NaN. So I add NaNGuardMode to check where the error is. I have the output like below:*
AssertionError: Inf detected
Big value detected
NanGuardMode found an error in the output of a node in this variable:
forall_inplace,cpu,scan_fn}.0 [id A] ''
|Elemwise{minimum,no_inplace} [id B] ''
| |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| | |Subtensor{int64} [id D] ''
| | | |/input_length[t] [id E]
| | | |Constant{0} [id F]
| | |TensorConstant{0} [id G]
| | |Shape_i{0} [id H] ''
| | |<TensorType(float64, matrix)> [id I]
| |Elemwise{sub,no_inplace} [id J] ''
| |Elemwise{Composite{Switch(LT(i0, i1), i1, i0)}} [id K] ''
| | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| | |TensorConstant{0} [id G]
| |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1)}} [id L] ''
| |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| |Elemwise{Composite{Switch(LT(i0, i1), i1, i0)}} [id K] ''
| |TensorConstant{0} [id G]
| |TensorConstant{-1} [id M]
|Subtensor{int64:int64:int8} [id N] ''
| |Elemwise{Composite{log(((i0 * i1) + i2))}}[(0, 1)] [id O] ''
| | |TensorConstant{(1, 1) of 0.9999} [id P]
| | |InplaceDimShuffle{1,0} [id Q] ''
| | | |AdvancedSubtensor1 [id R] ''
| | | |InplaceDimShuffle{1,0} [id S] ''
| | | | |Subtensor{int64:int32:} [id T] ''
| | | | |<TensorType(float64, matrix)> [id I]
| | | | |Constant{0} [id F]
| | | | |ScalarFromTensor [id U] ''
| | | | |Subtensor{int64} [id D] ''
| | | |AdvancedIncSubtensor1{inplace,set} [id V] ''
| | | |Alloc [id W] ''
| | | | |TensorConstant{-1} [id X]
| | | | |Elemwise{add,no_inplace} [id Y] ''
| | | | |TensorConstant{1} [id Z]
| | | | |Elemwise{Mul}[(0, 1)] [id BA] ''
| | | | |TensorConstant{2} [id BB]
| | | | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id BC] ''
| | | | |Subtensor{int64} [id BD] ''
| | | | | |/label_length[t] [id BE]
| | | | | |Constant{0} [id F]
| | | | |TensorConstant{0} [id G]
| | | | |Shape_i{0} [id BF] ''
| | | | |/the_labels[t] [id BG]
| | | |Subtensor{int64:int32:} [id BH] ''
| | | | |/the_labels[t] [id BG]
| | | | |Constant{0} [id F]
| | | | |ScalarFromTensor [id BI] ''
| | | | |Subtensor{int64} [id BD] ''
| | | |Elemwise{Composite{(i0 + (i1 * i2))}}[(0, 2)] [id BJ] ''
| | | |TensorConstant{(1,) of 1} [id BK]
| | | |TensorConstant{(1,) of 2} [id BL]
| | | |ARange{dtype='int64'} [id BM] ''
| | | |TensorConstant{0} [id G]
| | | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id BC] ''
| | | |TensorConstant{1} [id BN]
| | |Elemwise{true_div,no_inplace} [id BO] ''
| | |TensorConstant{(1, 1) of 0.0001} [id BP]
| | |InplaceDimShuffle{x,x} [id BQ] ''
| | |Elemwise{add,no_inplace} [id Y] ''
| |ScalarFromTensor [id BR] ''
| | |Elemwise{Composite{Switch(i0, i1, minimum(i2, i3))}}[(0, 3)] [id BS] ''
| | |Elemwise{le,no_inplace} [id BT] ''
| | | |Elemwise{Composite{Switch(i0, Switch(LT((i1 + i2), i3), i3, (i1 + i2)), Switch(LT(i1, i2), i1, i2))}} [id BU] ''
| | | | |Elemwise{lt,no_inplace} [id BV] ''
| | | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | | |TensorConstant{0} [id G]
| | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| | | | |TensorConstant{0} [id G]
| | | |TensorConstant{0} [id G]
| | |TensorConstant{0} [id G]
| | |TensorConstant{0} [id BW]
| | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| |ScalarFromTensor [id BX] ''
| | |Elemwise{Composite{Switch(i0, i1, minimum(i2, i3))}}[(0, 2)] [id BY] ''
| | |Elemwise{le,no_inplace} [id BT] ''
| | |TensorConstant{0} [id G]
| | |Elemwise{Composite{Switch(i0, Switch(LT((i1 + i2), i3), i3, (i1 + i2)), Switch(LT(i1, i2), i1, i2))}} [id BU] ''
| | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| |Constant{1} [id BZ]
|Subtensor{int64:int64:int64, ::int64} [id CA] ''
| |Elemwise{Composite{log(((i0 * i1) + i2))}}[(0, 1)] [id O] ''
| |ScalarFromTensor [id CB] ''
| | |Elemwise{Composite{Switch(i0, i1, maximum(i2, (i3 - i4)))}}[(0, 4)] [id CC] ''
| | |Elemwise{le,no_inplace} [id CD] ''
| | | |Elemwise{sub,no_inplace} [id CE] ''
| | | | |Elemwise{Composite{Switch(LT(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3), i1), i1, Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3))}}[(0, 2)] [id CF] ''
| | | | | |Elemwise{le,no_inplace} [id CG] ''
| | | | | | |Elemwise{Composite{Switch(i0, Switch(LT(Composite{((i0 + i1) - i2)}(i1, i2, i3), i4), i4, Composite{((i0 + i1) - i2)}(i1, i2, i3)), Switch(LT(i1, i5), i1, i5))}}[(0, 2)] [id CH] ''
| | | | | | | |Elemwise{lt,no_inplace} [id BV] ''
| | | | | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | | | | |Elemwise{Composite{Switch(LT(i0, i1), i1, i0)}} [id K] ''
| | | | | | | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1)}} [id L] ''
| | | | | | | |TensorConstant{0} [id G]
| | | | | | | |Elemwise{sub,no_inplace} [id J] ''
| | | | | | |TensorConstant{0} [id G]
| | | | | |TensorConstant{0} [id G]
| | | | | |Elemwise{Composite{Switch(i0, Switch(LT(Composite{((i0 + i1) - i2)}(i1, i2, i3), i4), i4, Composite{((i0 + i1) - i2)}(i1, i2, i3)), Switch(LT(i1, i5), i1, i5))}}[(0, 2)] [id CH] ''
| | | | | |Elemwise{sub,no_inplace} [id J] ''
| | | | | |TensorConstant{-1} [id X]
| | | | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1), i3), i1), i4), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1), i3), i1), i4)}}[(0, 3)] [id CI] ''
| | | | |Elemwise{le,no_inplace} [id CG] ''
| | | | |TensorConstant{0} [id G]
| | | | |TensorConstant{0} [id BW]
| | | | |Elemwise{sub,no_inplace} [id J] ''
| | | | |Elemwise{Composite{Switch(LT(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3), i1), i1, Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3))}}[(0, 2)] [id CF] ''
| | | |TensorConstant{0} [id G]
| | |TensorConstant{0} [id G]
| | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1)}} [id L] ''
| | |Elemwise{add,no_inplace} [id CJ] ''
| | | |TensorConstant{-1} [id M]
| | | |Elemwise{Composite{Switch(LT(i0, i1), i1, i0)}} [id K] ''
| | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1), i3), i1), i4), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1), i3), i1), i4)}}[(0, 3)] [id CI] ''
| |ScalarFromTensor [id CK] ''
| | |Elemwise{Composite{Switch(i0, i1, Switch(AND(LT((i2 - i3), i1), GT(i4, i1)), (i5 - i6), maximum((i5 + i7), (i2 - i3))))}}[(0, 2)] [id CL] ''
| | |Elemwise{le,no_inplace} [id CD] ''
| | |TensorConstant{0} [id G]
| | |Elemwise{add,no_inplace} [id CJ] ''
| | |Elemwise{Composite{Switch(LT(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3), i1), i1, Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3))}}[(0, 2)] [id CF] ''
| | |Elemwise{sub,no_inplace} [id CE] ''
| | |TensorConstant{-1} [id M]
| | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1)}} [id L] ''
| |Constant{-1} [id CM]
| |Constant{-1} [id CM]
|IncSubtensor{InplaceSet;:int64:} [id CN] ''
| |AllocEmpty{dtype='int32'} [id CO] ''
| | |Elemwise{Composite{(Switch(LT(maximum(i0, i1), i2), (maximum(i0, i1) + i3), (maximum(i0, i1) - i2)) + i3)}}[(0, 0)] [id CP] ''
| | |Elemwise{Composite{((i0 - Switch(LT(i1, i2), i1, i2)) + i1)}} [id CQ] ''
| | | |Elemwise{minimum,no_inplace} [id B] ''
| | | |TensorConstant{1} [id Z]
| | | |Elemwise{add,no_inplace} [id CR] ''
| | | |TensorConstant{1} [id Z]
| | | |Elemwise{minimum,no_inplace} [id B] ''
| | |TensorConstant{2} [id BB]
| | |TensorConstant{1} [id BN]
| | |TensorConstant{1} [id Z]
| |TensorConstant{(1,) of 1} [id CS]
| |Constant{1} [id CT]
|IncSubtensor{InplaceSet;:int64:} [id CU] ''
| |AllocEmpty{dtype='float64'} [id CV] ''
| | |Elemwise{Composite{(Switch(LT(maximum(i0, i1), i2), (maximum(i0, i1) + i3), (maximum(i0, i1) - i2)) + i4)}} [id CW] ''
| | | |Elemwise{Composite{((i0 - Switch(LT(i1, (i0 + i1)), i2, (i0 + i1))) + i1)}} [id CX] ''
| | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | |TensorConstant{1} [id Z]
| | | | |TensorConstant{1} [id Z]
| | | |TensorConstant{2} [id BB]
| | | |TensorConstant{1} [id BN]
| | | |TensorConstant{1} [id Z]
| | | |TensorConstant{1} [id Z]
| | |Elemwise{add,no_inplace} [id Y] ''
| |Rebroadcast{0} [id CY] ''
| | |Alloc [id CZ] ''
| | |TensorConstant{(1, 1) of 0.0} [id DA]
| | |TensorConstant{1} [id Z]
| | |Elemwise{add,no_inplace} [id Y] ''
| |Constant{1} [id CT]
|IncSubtensor{InplaceSet;:int64:} [id DB] ''
| |AllocEmpty{dtype='int32'} [id DC] ''
| | |Elemwise{Composite{(Switch(LT(maximum(i0, i1), i2), (maximum(i0, i1) + i3), (maximum(i0, i1) - i2)) + i3)}}[(0, 0)] [id DD] ''
| | |Elemwise{Composite{((i0 - Switch(LT(i1, (i0 + i1)), i2, (i0 + i1))) + i1)}} [id CX] ''
| | |TensorConstant{2} [id BB]
| | |TensorConstant{1} [id BN]
| | |TensorConstant{1} [id Z]
| |TensorConstant{(1,) of 1} [id CS]
| |Constant{1} [id CT]
|IncSubtensor{InplaceSet;:int64:} [id DE] ''
| |AllocEmpty{dtype='float64'} [id DF] ''
| | |Elemwise{Composite{(Switch(LT(maximum(i0, i1), i2), (maximum(i0, i1) + i3), (maximum(i0, i1) - i4)) + i5)}}[(0, 0)] [id DG] ''
| | | |Elemwise{Composite{((i0 - Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{((i0 - (Switch(LT(i1, i2), i2, i1) - i3)) - i3)}((Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), Composite{((((i0 - Switch(GE(i1, i2), i2, i1)) - i3) // i4) + i4)}(Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i6, i2, (i0 + i3)), i2, i4), (i0 + i3), i7, i3), i2, i7), i2, (Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), i7), i2), Composite{Switch(LT(i0, i1), i1, i0)}((Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), i2)), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{((i0 - (Switch(LT(i1, i2), i2, i1) - i3)) - i3)}((Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), Composite{((((i0 - Switch(GE(i1, i2), i2, i1)) - i3) // i4) + i4)}(Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i6, i2, (i0 + i3)), i2, i4), (i0 + i3), i7, i3), i2, i7), i2, (Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), i7), i2), Composite{Switch(LT(i0, i1), i1, i0)}((Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), i2))) + i3)}}[(0, 1)] [id DH] ''
| | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | |Elemwise{Composite{Switch(i0, i1, maximum(minimum((i2 + i3 + i4), i5), i6))}}[(0, 4)] [id DI] ''
| | | | | |Elemwise{le,no_inplace} [id DJ] ''
| | | | | | |Elemwise{sub,no_inplace} [id DK] ''
| | | | | | | |Elemwise{Composite{Switch(LT((i0 - i1), i2), i2, (i0 - i1))}} [id DL] ''
| | | | | | | | |Elemwise{add,no_inplace} [id CR] ''
| | | | | | | | |Elemwise{Composite{Switch(LT(i0, i1), i0, i1)}} [id DM] ''
| | | | | | | | | |TensorConstant{1} [id Z]
| | | | | | | | | |Elemwise{add,no_inplace} [id CR] ''
| | | | | | | | |TensorConstant{0} [id G]
| | | | | | | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{(i0 - (i1 + i2))}(i0, i1, i2), i3, i4, i1), i3), i2), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{(i0 - (i1 + i2))}(i0, i1, i2), i3, i4, i1), i3), i2)}} [id DN] ''
| | | | | | | |Elemwise{add,no_inplace} [id CR] ''
| | | | | | | |Elemwise{Composite{Switch(LT(i0, i1), i0, i1)}} [id DM] ''
| | | | | | | |Elemwise{Composite{Switch(LT((i0 - i1), i2), i2, (i0 - i1))}} [id DL] ''
| | | | | | | |TensorConstant{0} [id G]
| | | | | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | | | |TensorConstant{0} [id G]
| | | | | |TensorConstant{0} [id G]
| | | | | |TensorConstant{-1} [id M]
| | | | | |Elemwise{Composite{Switch(LT(i0, i1), i0, i1)}} [id DM] ''
| | | | | |Elemwise{Composite{Switch(LT((i0 - i1), i2), i2, (i0 - i1))}} [id DL] ''
| | | | | |Elemwise{add,no_inplace} [id CR] ''
| | | | | |TensorConstant{0} [id BW]
| | | | |TensorConstant{0} [id G]
| | | | |TensorConstant{1} [id Z]
| | | | |TensorConstant{-1} [id X]
| | | | |TensorConstant{1} [id BN]
| | | | |Elemwise{Composite{Switch(i0, i1, Switch(AND(LT((i2 + i3 + i4), i1), GT(i5, i1)), (i6 - i7), minimum((i2 + i3 + i4), i8)))}}[(0, 3)] [id DO] ''
| | | | | |Elemwise{le,no_inplace} [id DJ] ''
| | | | | |TensorConstant{0} [id G]
| | | | | |TensorConstant{-1} [id M]
| | | | | |Elemwise{Composite{Switch(LT(i0, i1), i0, i1)}} [id DM] ''
| | | | | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{(i0 - (i1 + i2))}(i0, i1, i2), i3, i4, i1), i3), i2), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{(i0 - (i1 + i2))}(i0, i1, i2), i3, i4, i1), i3), i2)}} [id DN] ''
| | | | | |Elemwise{sub,no_inplace} [id DK] ''
| | | | | |TensorConstant{-2} [id DP]
| | | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | | |Elemwise{add,no_inplace} [id CR] ''
| | | | |TensorConstant{1} [id BN]
| | | |TensorConstant{2} [id BB]
| | | |TensorConstant{1} [id BN]
| | | |TensorConstant{1} [id Z]
| | | |TensorConstant{1} [id BN]
| | | |TensorConstant{1} [id Z]
| | |Elemwise{add,no_inplace} [id Y] ''
| |Rebroadcast{0} [id CY] ''
| |Constant{1} [id CT]
|AdvancedSubtensor1 [id DQ] ''
| |Elemwise{add,no_inplace} [id DR] ''
| | |TensorConstant{(1,) of 1} [id BK]
| | |Elemwise{Mul}[(0, 1)] [id DS] ''
| | |TensorConstant{(1,) of 2} [id BL]
| | |ARange{dtype='int64'} [id DT] ''
| | |TensorConstant{0} [id G]
| | |Elemwise{Composite{((i0 + i1) // i2)}}[(0, 1)] [id DU] ''
| | | |TensorConstant{-2} [id DP]
| | | |Elemwise{Mul}[(0, 1)] [id BA] ''
| | | |TensorConstant{2} [id BB]
| | |TensorConstant{1} [id BN]
| |Subtensor{int64} [id DV] ''
| |Nonzero [id DW] ''
| | |Elemwise{neq,no_inplace} [id DX] ''
| | |AdvancedSubtensor1 [id DY] ''
| | | |AdvancedIncSubtensor1{inplace,set} [id V] ''
| | | |Elemwise{add,no_inplace} [id DR] ''
| | |AdvancedSubtensor1 [id DZ] ''
| | |AdvancedIncSubtensor1{inplace,set} [id V] ''
| | |Elemwise{Add}[(0, 1)] [id EA] ''
| | |TensorConstant{(1,) of 3} [id EB]
| | |Elemwise{Mul}[(0, 1)] [id DS] ''
| |Constant{0} [id F]
|Alloc [id EC] ''
| |TensorConstant{(1,) of 0.0} [id ED]
| |Elemwise{add,no_inplace} [id Y] ''
|AdvancedSubtensor1 [id EE] ''
|Elemwise{add,no_inplace} [id EF] ''
| |TensorConstant{(1,) of 1} [id BK]
| |Elemwise{Mul}[(0, 1)] [id EG] ''
| |TensorConstant{(1,) of 2} [id BL]
| |ARange{dtype='int64'} [id EH] ''
| |TensorConstant{0} [id G]
| |Elemwise{Composite{((i0 + (Composite{Switch(LT(i0, i1), i1, i0)}(i1, i2) - Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}((i1 - Composite{Switch(LT(i0, i1), i1, i0)}(i1, i2)), i2, i3), i2), Composite{Switch(LT(i0, i1), i1, i0)}(i1, i2)), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}((i1 - Composite{Switch(LT(i0, i1), i1, i0)}(i1, i2)), i2, i3), i2), Composite{Switch(LT(i0, i1), i1, i0)}(i1, i2)))) // i4)}}[(0, 1)] [id EI] ''
| | |TensorConstant{-3} [id EJ]
| | |Elemwise{add,no_inplace} [id Y] ''
| | |TensorConstant{0} [id G]
| | |Elemwise{Mul}[(0, 1)] [id BA] ''
| | |TensorConstant{2} [id BB]
| |TensorConstant{1} [id BN]
|Subtensor{int64} [id EK] ''
|Nonzero [id EL] ''
| |Elemwise{neq,no_inplace} [id EM] ''
| |AdvancedSubtensor1 [id EN] ''
| | |Subtensor{::int64} [id EO] ''
| | | |AdvancedIncSubtensor1{inplace,set} [id V] ''
| | | |Constant{-1} [id CM]
| | |Elemwise{add,no_inplace} [id EF] ''
| |AdvancedSubtensor1 [id EP] ''
| |Subtensor{::int64} [id EO] ''
| |Elemwise{Add}[(0, 1)] [id EQ] ''
| |TensorConstant{(1,) of 3} [id EB]
| |Elemwise{Mul}[(0, 1)] [id EG] ''
|Constant{0} [id F]
forall_inplace,cpu,scan_fn}.1 [id A] ''
forall_inplace,cpu,scan_fn}.2 [id A] ''
forall_inplace,cpu,scan_fn}.3 [id A] ''
Inner graphs of the scan ops:
forall_inplace,cpu,scan_fn}.0 [id A] ''
Toposort index: 124
Inputs types: [TensorType(int64, scalar), TensorType(float64, matrix), TensorType(float64, matrix), TensorType(int32, vector), TensorType(float64, matrix), TensorType(int32, vector), TensorType(float64, matrix), TensorType(int64, vector), TensorType(float64, vector), TensorType(int64, vector)]
Inputs shapes: [(), (3598, 1201), (3598, 1201), (3598,), (3598, 1201), (3598,), (3598, 1201), (595,), (1201,), (595,)]
Inputs strides: [(), (8, 28784), (-8, -28784), (4,), (9608, 8), (4,), (9608, 8), (8,), (8,), (8,)]
Inputs values: [array(3598), 'not shown', 'not shown', 'not shown', 'not shown', 'not shown', 'not shown', 'not shown', 'not shown', 'not shown']
Outputs clients: [[Subtensor{int64:int64:int8}(forall_inplace,cpu,scan_fn}.0, ScalarFromTensor.0, ScalarFromTensor.0, Constant{1})], [Subtensor{int64:int64:int8}(forall_inplace,cpu,scan_fn}.1, ScalarFromTensor.0, ScalarFromTensor.0, Constant{1})], [Subtensor{int64:int64:int8}(forall_inplace,cpu,scan_fn}.2, ScalarFromTensor.0, ScalarFromTensor.0, Constant{1})], [Subtensor{int64:int64:int64, ::int64}(forall_inplace,cpu,scan_fn}.3, ScalarFromTensor.0, ScalarFromTensor.0, Constant{-1}, Constant{-1})]]
*I don't know how to read the error information. Could anyone tell me where the error is?*
*Thank you very much!*
*I ran theano with Keras. I run a very simple toy example with CTC loss.
The code is listed as below:*
batch_size = 32
frame_len = 3600
output_len = 600
nb_feat = 64
nb_class = 63
nb_output = nb_class + 1 # add output for blank
inner_dim = 16
def ctc_lambda_func(args):
y_pred, labels, input_length, label_length = args
# the 2 is critical here since the first couple outputs of the RNN
# tend to be garbage:
y_pred = y_pred[:, 2:, :]
scale = 1
return K.ctc_batch_cost(labels, y_pred, input_length, label_length,scale)
input_data = Input(name='the_input', shape=(frame_len,nb_feat))
lstm1 = GRU(inner_dim,return_sequences = True, name='lstm1')(input_data)
y_pred = TimeDistributed(Dense(nb_output,activation='softmax',name='dense1'))(lstm1)
Model(inputs=input_data, outputs=y_pred).summary()
labels = Input(name='the_labels', shape=[output_len])
input_length = Input(name='input_length', shape=[1], dtype='int32')
label_length = Input(name='label_length', shape=[1], dtype='int32')
loss_out = Lambda(ctc_lambda_func, output_shape=(1,), name='ctc')([y_pred, labels, input_length, label_length])
model = Model(inputs=[input_data, labels, input_length, label_length], outputs=loss_out)
data = np.random.uniform(low = -5, high = 5, size = (batch_size, frame_len, nb_feat)).astype('float32')
# Dummy labels in range [1,nb_class]. 0 = <blank>
label = 1 + np.random.randint(nb_class, size = (batch_size, output_len)).astype('float32')
length = np.ones((batch_size,1),dtype='float32')*frame_len
output_length = np.ones((batch_size,1),dtype='float32')*output_len
input_dict = {'the_input':data,'the_labels':label,'input_length':length,'label_length':output_length}
output_dict = {'ctc':np.zeros([batch_size])}
opt = SGD(lr=0.001, decay=1e-6, momentum=0.9, clipnorm=1.,clipvalue=0.5)
# opt = Adam(clipnorm=1.,clipvalue=0.5)
model.compile(loss={'ctc': lambda y_true, y_pred: y_pred}, optimizer=opt)
model.summary()
*I find I have gradients of NaN. So I add NaNGuardMode to check where the error is. I have the output like below:*
AssertionError: Inf detected
Big value detected
NanGuardMode found an error in the output of a node in this variable:
forall_inplace,cpu,scan_fn}.0 [id A] ''
|Elemwise{minimum,no_inplace} [id B] ''
| |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| | |Subtensor{int64} [id D] ''
| | | |/input_length[t] [id E]
| | | |Constant{0} [id F]
| | |TensorConstant{0} [id G]
| | |Shape_i{0} [id H] ''
| | |<TensorType(float64, matrix)> [id I]
| |Elemwise{sub,no_inplace} [id J] ''
| |Elemwise{Composite{Switch(LT(i0, i1), i1, i0)}} [id K] ''
| | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| | |TensorConstant{0} [id G]
| |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1)}} [id L] ''
| |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| |Elemwise{Composite{Switch(LT(i0, i1), i1, i0)}} [id K] ''
| |TensorConstant{0} [id G]
| |TensorConstant{-1} [id M]
|Subtensor{int64:int64:int8} [id N] ''
| |Elemwise{Composite{log(((i0 * i1) + i2))}}[(0, 1)] [id O] ''
| | |TensorConstant{(1, 1) of 0.9999} [id P]
| | |InplaceDimShuffle{1,0} [id Q] ''
| | | |AdvancedSubtensor1 [id R] ''
| | | |InplaceDimShuffle{1,0} [id S] ''
| | | | |Subtensor{int64:int32:} [id T] ''
| | | | |<TensorType(float64, matrix)> [id I]
| | | | |Constant{0} [id F]
| | | | |ScalarFromTensor [id U] ''
| | | | |Subtensor{int64} [id D] ''
| | | |AdvancedIncSubtensor1{inplace,set} [id V] ''
| | | |Alloc [id W] ''
| | | | |TensorConstant{-1} [id X]
| | | | |Elemwise{add,no_inplace} [id Y] ''
| | | | |TensorConstant{1} [id Z]
| | | | |Elemwise{Mul}[(0, 1)] [id BA] ''
| | | | |TensorConstant{2} [id BB]
| | | | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id BC] ''
| | | | |Subtensor{int64} [id BD] ''
| | | | | |/label_length[t] [id BE]
| | | | | |Constant{0} [id F]
| | | | |TensorConstant{0} [id G]
| | | | |Shape_i{0} [id BF] ''
| | | | |/the_labels[t] [id BG]
| | | |Subtensor{int64:int32:} [id BH] ''
| | | | |/the_labels[t] [id BG]
| | | | |Constant{0} [id F]
| | | | |ScalarFromTensor [id BI] ''
| | | | |Subtensor{int64} [id BD] ''
| | | |Elemwise{Composite{(i0 + (i1 * i2))}}[(0, 2)] [id BJ] ''
| | | |TensorConstant{(1,) of 1} [id BK]
| | | |TensorConstant{(1,) of 2} [id BL]
| | | |ARange{dtype='int64'} [id BM] ''
| | | |TensorConstant{0} [id G]
| | | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id BC] ''
| | | |TensorConstant{1} [id BN]
| | |Elemwise{true_div,no_inplace} [id BO] ''
| | |TensorConstant{(1, 1) of 0.0001} [id BP]
| | |InplaceDimShuffle{x,x} [id BQ] ''
| | |Elemwise{add,no_inplace} [id Y] ''
| |ScalarFromTensor [id BR] ''
| | |Elemwise{Composite{Switch(i0, i1, minimum(i2, i3))}}[(0, 3)] [id BS] ''
| | |Elemwise{le,no_inplace} [id BT] ''
| | | |Elemwise{Composite{Switch(i0, Switch(LT((i1 + i2), i3), i3, (i1 + i2)), Switch(LT(i1, i2), i1, i2))}} [id BU] ''
| | | | |Elemwise{lt,no_inplace} [id BV] ''
| | | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | | |TensorConstant{0} [id G]
| | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| | | | |TensorConstant{0} [id G]
| | | |TensorConstant{0} [id G]
| | |TensorConstant{0} [id G]
| | |TensorConstant{0} [id BW]
| | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| |ScalarFromTensor [id BX] ''
| | |Elemwise{Composite{Switch(i0, i1, minimum(i2, i3))}}[(0, 2)] [id BY] ''
| | |Elemwise{le,no_inplace} [id BT] ''
| | |TensorConstant{0} [id G]
| | |Elemwise{Composite{Switch(i0, Switch(LT((i1 + i2), i3), i3, (i1 + i2)), Switch(LT(i1, i2), i1, i2))}} [id BU] ''
| | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| |Constant{1} [id BZ]
|Subtensor{int64:int64:int64, ::int64} [id CA] ''
| |Elemwise{Composite{log(((i0 * i1) + i2))}}[(0, 1)] [id O] ''
| |ScalarFromTensor [id CB] ''
| | |Elemwise{Composite{Switch(i0, i1, maximum(i2, (i3 - i4)))}}[(0, 4)] [id CC] ''
| | |Elemwise{le,no_inplace} [id CD] ''
| | | |Elemwise{sub,no_inplace} [id CE] ''
| | | | |Elemwise{Composite{Switch(LT(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3), i1), i1, Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3))}}[(0, 2)] [id CF] ''
| | | | | |Elemwise{le,no_inplace} [id CG] ''
| | | | | | |Elemwise{Composite{Switch(i0, Switch(LT(Composite{((i0 + i1) - i2)}(i1, i2, i3), i4), i4, Composite{((i0 + i1) - i2)}(i1, i2, i3)), Switch(LT(i1, i5), i1, i5))}}[(0, 2)] [id CH] ''
| | | | | | | |Elemwise{lt,no_inplace} [id BV] ''
| | | | | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | | | | |Elemwise{Composite{Switch(LT(i0, i1), i1, i0)}} [id K] ''
| | | | | | | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1)}} [id L] ''
| | | | | | | |TensorConstant{0} [id G]
| | | | | | | |Elemwise{sub,no_inplace} [id J] ''
| | | | | | |TensorConstant{0} [id G]
| | | | | |TensorConstant{0} [id G]
| | | | | |Elemwise{Composite{Switch(i0, Switch(LT(Composite{((i0 + i1) - i2)}(i1, i2, i3), i4), i4, Composite{((i0 + i1) - i2)}(i1, i2, i3)), Switch(LT(i1, i5), i1, i5))}}[(0, 2)] [id CH] ''
| | | | | |Elemwise{sub,no_inplace} [id J] ''
| | | | | |TensorConstant{-1} [id X]
| | | | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1), i3), i1), i4), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1), i3), i1), i4)}}[(0, 3)] [id CI] ''
| | | | |Elemwise{le,no_inplace} [id CG] ''
| | | | |TensorConstant{0} [id G]
| | | | |TensorConstant{0} [id BW]
| | | | |Elemwise{sub,no_inplace} [id J] ''
| | | | |Elemwise{Composite{Switch(LT(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3), i1), i1, Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3))}}[(0, 2)] [id CF] ''
| | | |TensorConstant{0} [id G]
| | |TensorConstant{0} [id G]
| | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1)}} [id L] ''
| | |Elemwise{add,no_inplace} [id CJ] ''
| | | |TensorConstant{-1} [id M]
| | | |Elemwise{Composite{Switch(LT(i0, i1), i1, i0)}} [id K] ''
| | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1), i3), i1), i4), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1), i3), i1), i4)}}[(0, 3)] [id CI] ''
| |ScalarFromTensor [id CK] ''
| | |Elemwise{Composite{Switch(i0, i1, Switch(AND(LT((i2 - i3), i1), GT(i4, i1)), (i5 - i6), maximum((i5 + i7), (i2 - i3))))}}[(0, 2)] [id CL] ''
| | |Elemwise{le,no_inplace} [id CD] ''
| | |TensorConstant{0} [id G]
| | |Elemwise{add,no_inplace} [id CJ] ''
| | |Elemwise{Composite{Switch(LT(Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3), i1), i1, Composite{Switch(GE(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(Composite{Switch(i0, i1, minimum(i2, i3))}(i0, i1, i2, i3), i1, i3), i1, i4), i3))}}[(0, 2)] [id CF] ''
| | |Elemwise{sub,no_inplace} [id CE] ''
| | |TensorConstant{-1} [id M]
| | |Elemwise{Composite{Switch(LT(i0, i1), Switch(LT((i0 + i2), i1), i1, (i0 + i2)), Switch(LT(i0, i2), i0, i2))}}[(0, 2)] [id C] ''
| | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 + i3), i0)}((i0 - i1), i2, i3, i0), i2), i1)}} [id L] ''
| |Constant{-1} [id CM]
| |Constant{-1} [id CM]
|IncSubtensor{InplaceSet;:int64:} [id CN] ''
| |AllocEmpty{dtype='int32'} [id CO] ''
| | |Elemwise{Composite{(Switch(LT(maximum(i0, i1), i2), (maximum(i0, i1) + i3), (maximum(i0, i1) - i2)) + i3)}}[(0, 0)] [id CP] ''
| | |Elemwise{Composite{((i0 - Switch(LT(i1, i2), i1, i2)) + i1)}} [id CQ] ''
| | | |Elemwise{minimum,no_inplace} [id B] ''
| | | |TensorConstant{1} [id Z]
| | | |Elemwise{add,no_inplace} [id CR] ''
| | | |TensorConstant{1} [id Z]
| | | |Elemwise{minimum,no_inplace} [id B] ''
| | |TensorConstant{2} [id BB]
| | |TensorConstant{1} [id BN]
| | |TensorConstant{1} [id Z]
| |TensorConstant{(1,) of 1} [id CS]
| |Constant{1} [id CT]
|IncSubtensor{InplaceSet;:int64:} [id CU] ''
| |AllocEmpty{dtype='float64'} [id CV] ''
| | |Elemwise{Composite{(Switch(LT(maximum(i0, i1), i2), (maximum(i0, i1) + i3), (maximum(i0, i1) - i2)) + i4)}} [id CW] ''
| | | |Elemwise{Composite{((i0 - Switch(LT(i1, (i0 + i1)), i2, (i0 + i1))) + i1)}} [id CX] ''
| | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | |TensorConstant{1} [id Z]
| | | | |TensorConstant{1} [id Z]
| | | |TensorConstant{2} [id BB]
| | | |TensorConstant{1} [id BN]
| | | |TensorConstant{1} [id Z]
| | | |TensorConstant{1} [id Z]
| | |Elemwise{add,no_inplace} [id Y] ''
| |Rebroadcast{0} [id CY] ''
| | |Alloc [id CZ] ''
| | |TensorConstant{(1, 1) of 0.0} [id DA]
| | |TensorConstant{1} [id Z]
| | |Elemwise{add,no_inplace} [id Y] ''
| |Constant{1} [id CT]
|IncSubtensor{InplaceSet;:int64:} [id DB] ''
| |AllocEmpty{dtype='int32'} [id DC] ''
| | |Elemwise{Composite{(Switch(LT(maximum(i0, i1), i2), (maximum(i0, i1) + i3), (maximum(i0, i1) - i2)) + i3)}}[(0, 0)] [id DD] ''
| | |Elemwise{Composite{((i0 - Switch(LT(i1, (i0 + i1)), i2, (i0 + i1))) + i1)}} [id CX] ''
| | |TensorConstant{2} [id BB]
| | |TensorConstant{1} [id BN]
| | |TensorConstant{1} [id Z]
| |TensorConstant{(1,) of 1} [id CS]
| |Constant{1} [id CT]
|IncSubtensor{InplaceSet;:int64:} [id DE] ''
| |AllocEmpty{dtype='float64'} [id DF] ''
| | |Elemwise{Composite{(Switch(LT(maximum(i0, i1), i2), (maximum(i0, i1) + i3), (maximum(i0, i1) - i4)) + i5)}}[(0, 0)] [id DG] ''
| | | |Elemwise{Composite{((i0 - Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{((i0 - (Switch(LT(i1, i2), i2, i1) - i3)) - i3)}((Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), Composite{((((i0 - Switch(GE(i1, i2), i2, i1)) - i3) // i4) + i4)}(Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i6, i2, (i0 + i3)), i2, i4), (i0 + i3), i7, i3), i2, i7), i2, (Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), i7), i2), Composite{Switch(LT(i0, i1), i1, i0)}((Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), i2)), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{((i0 - (Switch(LT(i1, i2), i2, i1) - i3)) - i3)}((Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), Composite{((((i0 - Switch(GE(i1, i2), i2, i1)) - i3) // i4) + i4)}(Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i6, i2, (i0 + i3)), i2, i4), (i0 + i3), i7, i3), i2, i7), i2, (Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), i7), i2), Composite{Switch(LT(i0, i1), i1, i0)}((Composite{Switch(GE(Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3), i2), (i2 - i4), Composite{Switch(LT(i0, i1), i2, i0)}(Composite{Switch(LT(i0, i1), (i0 + i2), i0)}(i0, i1, i2), i1, i3))}(i1, i2, (i0 + i3), i4, i5) + i3), i2))) + i3)}}[(0, 1)] [id DH] ''
| | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | |Elemwise{Composite{Switch(i0, i1, maximum(minimum((i2 + i3 + i4), i5), i6))}}[(0, 4)] [id DI] ''
| | | | | |Elemwise{le,no_inplace} [id DJ] ''
| | | | | | |Elemwise{sub,no_inplace} [id DK] ''
| | | | | | | |Elemwise{Composite{Switch(LT((i0 - i1), i2), i2, (i0 - i1))}} [id DL] ''
| | | | | | | | |Elemwise{add,no_inplace} [id CR] ''
| | | | | | | | |Elemwise{Composite{Switch(LT(i0, i1), i0, i1)}} [id DM] ''
| | | | | | | | | |TensorConstant{1} [id Z]
| | | | | | | | | |Elemwise{add,no_inplace} [id CR] ''
| | | | | | | | |TensorConstant{0} [id G]
| | | | | | | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{(i0 - (i1 + i2))}(i0, i1, i2), i3, i4, i1), i3), i2), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{(i0 - (i1 + i2))}(i0, i1, i2), i3, i4, i1), i3), i2)}} [id DN] ''
| | | | | | | |Elemwise{add,no_inplace} [id CR] ''
| | | | | | | |Elemwise{Composite{Switch(LT(i0, i1), i0, i1)}} [id DM] ''
| | | | | | | |Elemwise{Composite{Switch(LT((i0 - i1), i2), i2, (i0 - i1))}} [id DL] ''
| | | | | | | |TensorConstant{0} [id G]
| | | | | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | | | |TensorConstant{0} [id G]
| | | | | |TensorConstant{0} [id G]
| | | | | |TensorConstant{-1} [id M]
| | | | | |Elemwise{Composite{Switch(LT(i0, i1), i0, i1)}} [id DM] ''
| | | | | |Elemwise{Composite{Switch(LT((i0 - i1), i2), i2, (i0 - i1))}} [id DL] ''
| | | | | |Elemwise{add,no_inplace} [id CR] ''
| | | | | |TensorConstant{0} [id BW]
| | | | |TensorConstant{0} [id G]
| | | | |TensorConstant{1} [id Z]
| | | | |TensorConstant{-1} [id X]
| | | | |TensorConstant{1} [id BN]
| | | | |Elemwise{Composite{Switch(i0, i1, Switch(AND(LT((i2 + i3 + i4), i1), GT(i5, i1)), (i6 - i7), minimum((i2 + i3 + i4), i8)))}}[(0, 3)] [id DO] ''
| | | | | |Elemwise{le,no_inplace} [id DJ] ''
| | | | | |TensorConstant{0} [id G]
| | | | | |TensorConstant{-1} [id M]
| | | | | |Elemwise{Composite{Switch(LT(i0, i1), i0, i1)}} [id DM] ''
| | | | | |Elemwise{Composite{Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{(i0 - (i1 + i2))}(i0, i1, i2), i3, i4, i1), i3), i2), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), (i2 - i3), i0)}(Composite{(i0 - (i1 + i2))}(i0, i1, i2), i3, i4, i1), i3), i2)}} [id DN] ''
| | | | | |Elemwise{sub,no_inplace} [id DK] ''
| | | | | |TensorConstant{-2} [id DP]
| | | | | |Elemwise{minimum,no_inplace} [id B] ''
| | | | | |Elemwise{add,no_inplace} [id CR] ''
| | | | |TensorConstant{1} [id BN]
| | | |TensorConstant{2} [id BB]
| | | |TensorConstant{1} [id BN]
| | | |TensorConstant{1} [id Z]
| | | |TensorConstant{1} [id BN]
| | | |TensorConstant{1} [id Z]
| | |Elemwise{add,no_inplace} [id Y] ''
| |Rebroadcast{0} [id CY] ''
| |Constant{1} [id CT]
|AdvancedSubtensor1 [id DQ] ''
| |Elemwise{add,no_inplace} [id DR] ''
| | |TensorConstant{(1,) of 1} [id BK]
| | |Elemwise{Mul}[(0, 1)] [id DS] ''
| | |TensorConstant{(1,) of 2} [id BL]
| | |ARange{dtype='int64'} [id DT] ''
| | |TensorConstant{0} [id G]
| | |Elemwise{Composite{((i0 + i1) // i2)}}[(0, 1)] [id DU] ''
| | | |TensorConstant{-2} [id DP]
| | | |Elemwise{Mul}[(0, 1)] [id BA] ''
| | | |TensorConstant{2} [id BB]
| | |TensorConstant{1} [id BN]
| |Subtensor{int64} [id DV] ''
| |Nonzero [id DW] ''
| | |Elemwise{neq,no_inplace} [id DX] ''
| | |AdvancedSubtensor1 [id DY] ''
| | | |AdvancedIncSubtensor1{inplace,set} [id V] ''
| | | |Elemwise{add,no_inplace} [id DR] ''
| | |AdvancedSubtensor1 [id DZ] ''
| | |AdvancedIncSubtensor1{inplace,set} [id V] ''
| | |Elemwise{Add}[(0, 1)] [id EA] ''
| | |TensorConstant{(1,) of 3} [id EB]
| | |Elemwise{Mul}[(0, 1)] [id DS] ''
| |Constant{0} [id F]
|Alloc [id EC] ''
| |TensorConstant{(1,) of 0.0} [id ED]
| |Elemwise{add,no_inplace} [id Y] ''
|AdvancedSubtensor1 [id EE] ''
|Elemwise{add,no_inplace} [id EF] ''
| |TensorConstant{(1,) of 1} [id BK]
| |Elemwise{Mul}[(0, 1)] [id EG] ''
| |TensorConstant{(1,) of 2} [id BL]
| |ARange{dtype='int64'} [id EH] ''
| |TensorConstant{0} [id G]
| |Elemwise{Composite{((i0 + (Composite{Switch(LT(i0, i1), i1, i0)}(i1, i2) - Switch(LT(Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}((i1 - Composite{Switch(LT(i0, i1), i1, i0)}(i1, i2)), i2, i3), i2), Composite{Switch(LT(i0, i1), i1, i0)}(i1, i2)), Composite{Switch(LT(i0, i1), i1, i0)}(Composite{Switch(LT(i0, i1), i2, i0)}((i1 - Composite{Switch(LT(i0, i1), i1, i0)}(i1, i2)), i2, i3), i2), Composite{Switch(LT(i0, i1), i1, i0)}(i1, i2)))) // i4)}}[(0, 1)] [id EI] ''
| | |TensorConstant{-3} [id EJ]
| | |Elemwise{add,no_inplace} [id Y] ''
| | |TensorConstant{0} [id G]
| | |Elemwise{Mul}[(0, 1)] [id BA] ''
| | |TensorConstant{2} [id BB]
| |TensorConstant{1} [id BN]
|Subtensor{int64} [id EK] ''
|Nonzero [id EL] ''
| |Elemwise{neq,no_inplace} [id EM] ''
| |AdvancedSubtensor1 [id EN] ''
| | |Subtensor{::int64} [id EO] ''
| | | |AdvancedIncSubtensor1{inplace,set} [id V] ''
| | | |Constant{-1} [id CM]
| | |Elemwise{add,no_inplace} [id EF] ''
| |AdvancedSubtensor1 [id EP] ''
| |Subtensor{::int64} [id EO] ''
| |Elemwise{Add}[(0, 1)] [id EQ] ''
| |TensorConstant{(1,) of 3} [id EB]
| |Elemwise{Mul}[(0, 1)] [id EG] ''
|Constant{0} [id F]
forall_inplace,cpu,scan_fn}.1 [id A] ''
forall_inplace,cpu,scan_fn}.2 [id A] ''
forall_inplace,cpu,scan_fn}.3 [id A] ''
Inner graphs of the scan ops:
forall_inplace,cpu,scan_fn}.0 [id A] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id ER] ''
|TensorConstant{1} [id ES]
|<TensorType(int32, scalar)> [id ET] -> [id CN]
|TensorConstant{3} [id EU]
|Reduce{maximum}{0} [id EV] 'max'
| |Join [id EW] ''
| |TensorConstant{0} [id EX]
| |AdvancedSubtensor1 [id EY] ''
| | |<TensorType(int64, vector)> [id EZ] -> [id DQ]
| | |Subtensor{int64} [id FA] ''
| | |Nonzero [id FB] ''
| | | |Elemwise{lt,no_inplace} [id FC] ''
| | | |<TensorType(int64, vector)> [id EZ] -> [id DQ]
| | | |InplaceDimShuffle{x} [id FD] ''
| | | |<TensorType(int32, scalar)> [id ET] -> [id CN]
| | |Constant{0} [id FE]
| |TensorConstant{(1,) of -1} [id FF]
|Shape_i{0} [id FG] ''
|<TensorType(float64, vector)> [id FH] -> [id N]
IncSubtensor{Set;:int32:} [id FI] ''
|<TensorType(float64, vector)> [id FJ] -> [id EC]
|Elemwise{Composite{(i0 + log(i1) + i2)}}[(0, 1)] [id FK] ''
| |Subtensor{:int32:} [id FL] ''
| | |<TensorType(float64, vector)> [id FH] -> [id N]
| | |ScalarFromTensor [id FM] ''
| | |Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id ER] ''
| |AdvancedIncSubtensor1{inplace,inc} [id FN] ''
| | |IncSubtensor{Inc;int64::} [id FO] ''
| | | |IncSubtensor{Set;:int32:} [id FP] ''
| | | | |Subtensor{:int32:} [id FQ] ''
| | | | | |<TensorType(float64, vector)> [id FJ] -> [id EC]
| | | | | |ScalarFromTensor [id FM] ''
| | | | |Elemwise{Composite{exp((i0 - i1))}} [id FR] ''
| | | | | |Subtensor{:int32:} [id FS] ''
| | | | | | |<TensorType(float64, vector)> [id FT] -> [id CU]
| | | | | | |ScalarFromTensor [id FU] ''
| | | | | | |<TensorType(int32, scalar)> [id ET] -> [id CN]
| | | | | |InplaceDimShuffle{x} [id FV] ''
| | | | | |Reduce{maximum}{0} [id FW] 'max'
| | | | | |Subtensor{:int32:} [id FS] ''
| | | | |ScalarFromTensor [id FU] ''
| | | |Subtensor{:int64:} [id FX] ''
| | | | |IncSubtensor{Set;:int32:} [id FP] ''
| | | | |Constant{-1} [id FY]
| | | |Constant{1} [id FZ]
| | |AdvancedSubtensor1 [id GA] ''
| | | |Elemwise{Composite{exp((i0 - i1))}} [id FR] ''
| | | |AdvancedSubtensor1 [id EY] ''
| | |Elemwise{Add}[(0, 1)] [id GB] ''
| | |TensorConstant{(1,) of 2} [id GC]
| | |AdvancedSubtensor1 [id EY] ''
| |InplaceDimShuffle{x} [id FV] ''
|ScalarFromTensor [id FM] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id GD] ''
|TensorConstant{1} [id ES]
|<TensorType(int32, scalar)> [id GE] -> [id DB]
|TensorConstant{3} [id EU]
|Reduce{maximum}{0} [id GF] 'max'
| |Join [id GG] ''
| |TensorConstant{0} [id EX]
| |AdvancedSubtensor1 [id GH] ''
| | |<TensorType(int64, vector)> [id GI] -> [id EE]
| | |Subtensor{int64} [id GJ] ''
| | |Nonzero [id GK] ''
| | | |Elemwise{lt,no_inplace} [id GL] ''
| | | |<TensorType(int64, vector)> [id GI] -> [id EE]
| | | |InplaceDimShuffle{x} [id GM] ''
| | | |<TensorType(int32, scalar)> [id GE] -> [id DB]
| | |Constant{0} [id FE]
| |TensorConstant{(1,) of -1} [id FF]
|Shape_i{0} [id GN] ''
|<TensorType(float64, vector)> [id GO] -> [id CA]
IncSubtensor{Set;:int32:} [id GP] ''
|<TensorType(float64, vector)> [id FJ] -> [id EC]
|Elemwise{Composite{(i0 + log(i1) + i2)}}[(0, 1)] [id GQ] ''
| |Subtensor{:int32:} [id GR] ''
| | |<TensorType(float64, vector)> [id GO] -> [id CA]
| | |ScalarFromTensor [id GS] ''
| | |Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id GD] ''
| |AdvancedIncSubtensor1{inplace,inc} [id GT] ''
| | |IncSubtensor{Inc;int64::} [id GU] ''
| | | |IncSubtensor{Set;:int32:} [id GV] ''
| | | | |Subtensor{:int32:} [id GW] ''
| | | | | |<TensorType(float64, vector)> [id FJ] -> [id EC]
| | | | | |ScalarFromTensor [id GS] ''
| | | | |Elemwise{Composite{exp((i0 - i1))}} [id GX] ''
| | | | | |Subtensor{:int32:} [id GY] ''
| | | | | | |<TensorType(float64, vector)> [id GZ] -> [id DE]
| | | | | | |ScalarFromTensor [id HA] ''
| | | | | | |<TensorType(int32, scalar)> [id GE] -> [id DB]
| | | | | |InplaceDimShuffle{x} [id HB] ''
| | | | | |Reduce{maximum}{0} [id HC] 'max'
| | | | | |Subtensor{:int32:} [id GY] ''
| | | | |ScalarFromTensor [id HA] ''
| | | |Subtensor{:int64:} [id HD] ''
| | | | |IncSubtensor{Set;:int32:} [id GV] ''
| | | | |Constant{-1} [id FY]
| | | |Constant{1} [id FZ]
| | |AdvancedSubtensor1 [id HE] ''
| | | |Elemwise{Composite{exp((i0 - i1))}} [id GX] ''
| | | |AdvancedSubtensor1 [id GH] ''
| | |Elemwise{Add}[(0, 1)] [id HF] ''
| | |TensorConstant{(1,) of 2} [id GC]
| | |AdvancedSubtensor1 [id GH] ''
| |InplaceDimShuffle{x} [id HB] ''
|ScalarFromTensor [id GS] ''
forall_inplace,cpu,scan_fn}.1 [id A] ''|TensorConstant{1} [id ES]
|<TensorType(int32, scalar)> [id ET] -> [id CN]
|TensorConstant{3} [id EU]
|Reduce{maximum}{0} [id EV] 'max'
| |Join [id EW] ''
| |TensorConstant{0} [id EX]
| |AdvancedSubtensor1 [id EY] ''
| | |<TensorType(int64, vector)> [id EZ] -> [id DQ]
| | |Subtensor{int64} [id FA] ''
| | |Nonzero [id FB] ''
| | | |Elemwise{lt,no_inplace} [id FC] ''
| | | |<TensorType(int64, vector)> [id EZ] -> [id DQ]
| | | |InplaceDimShuffle{x} [id FD] ''
| | | |<TensorType(int32, scalar)> [id ET] -> [id CN]
| | |Constant{0} [id FE]
| |TensorConstant{(1,) of -1} [id FF]
|Shape_i{0} [id FG] ''
|<TensorType(float64, vector)> [id FH] -> [id N]
IncSubtensor{Set;:int32:} [id FI] ''
|<TensorType(float64, vector)> [id FJ] -> [id EC]
|Elemwise{Composite{(i0 + log(i1) + i2)}}[(0, 1)] [id FK] ''
| |Subtensor{:int32:} [id FL] ''
| | |<TensorType(float64, vector)> [id FH] -> [id N]
| | |ScalarFromTensor [id FM] ''
| | |Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id ER] ''
| |AdvancedIncSubtensor1{inplace,inc} [id FN] ''
| | |IncSubtensor{Inc;int64::} [id FO] ''
| | | |IncSubtensor{Set;:int32:} [id FP] ''
| | | | |Subtensor{:int32:} [id FQ] ''
| | | | | |<TensorType(float64, vector)> [id FJ] -> [id EC]
| | | | | |ScalarFromTensor [id FM] ''
| | | | |Elemwise{Composite{exp((i0 - i1))}} [id FR] ''
| | | | | |Subtensor{:int32:} [id FS] ''
| | | | | | |<TensorType(float64, vector)> [id FT] -> [id CU]
| | | | | | |ScalarFromTensor [id FU] ''
| | | | | | |<TensorType(int32, scalar)> [id ET] -> [id CN]
| | | | | |InplaceDimShuffle{x} [id FV] ''
| | | | | |Reduce{maximum}{0} [id FW] 'max'
| | | | | |Subtensor{:int32:} [id FS] ''
| | | | |ScalarFromTensor [id FU] ''
| | | |Subtensor{:int64:} [id FX] ''
| | | | |IncSubtensor{Set;:int32:} [id FP] ''
| | | | |Constant{-1} [id FY]
| | | |Constant{1} [id FZ]
| | |AdvancedSubtensor1 [id GA] ''
| | | |Elemwise{Composite{exp((i0 - i1))}} [id FR] ''
| | | |AdvancedSubtensor1 [id EY] ''
| | |Elemwise{Add}[(0, 1)] [id GB] ''
| | |TensorConstant{(1,) of 2} [id GC]
| | |AdvancedSubtensor1 [id EY] ''
| |InplaceDimShuffle{x} [id FV] ''
|ScalarFromTensor [id FM] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id GD] ''
|TensorConstant{1} [id ES]
|<TensorType(int32, scalar)> [id GE] -> [id DB]
|TensorConstant{3} [id EU]
|Reduce{maximum}{0} [id GF] 'max'
| |Join [id GG] ''
| |TensorConstant{0} [id EX]
| |AdvancedSubtensor1 [id GH] ''
| | |<TensorType(int64, vector)> [id GI] -> [id EE]
| | |Subtensor{int64} [id GJ] ''
| | |Nonzero [id GK] ''
| | | |Elemwise{lt,no_inplace} [id GL] ''
| | | |<TensorType(int64, vector)> [id GI] -> [id EE]
| | | |InplaceDimShuffle{x} [id GM] ''
| | | |<TensorType(int32, scalar)> [id GE] -> [id DB]
| | |Constant{0} [id FE]
| |TensorConstant{(1,) of -1} [id FF]
|Shape_i{0} [id GN] ''
|<TensorType(float64, vector)> [id GO] -> [id CA]
IncSubtensor{Set;:int32:} [id GP] ''
|<TensorType(float64, vector)> [id FJ] -> [id EC]
|Elemwise{Composite{(i0 + log(i1) + i2)}}[(0, 1)] [id GQ] ''
| |Subtensor{:int32:} [id GR] ''
| | |<TensorType(float64, vector)> [id GO] -> [id CA]
| | |ScalarFromTensor [id GS] ''
| | |Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id GD] ''
| |AdvancedIncSubtensor1{inplace,inc} [id GT] ''
| | |IncSubtensor{Inc;int64::} [id GU] ''
| | | |IncSubtensor{Set;:int32:} [id GV] ''
| | | | |Subtensor{:int32:} [id GW] ''
| | | | | |<TensorType(float64, vector)> [id FJ] -> [id EC]
| | | | | |ScalarFromTensor [id GS] ''
| | | | |Elemwise{Composite{exp((i0 - i1))}} [id GX] ''
| | | | | |Subtensor{:int32:} [id GY] ''
| | | | | | |<TensorType(float64, vector)> [id GZ] -> [id DE]
| | | | | | |ScalarFromTensor [id HA] ''
| | | | | | |<TensorType(int32, scalar)> [id GE] -> [id DB]
| | | | | |InplaceDimShuffle{x} [id HB] ''
| | | | | |Reduce{maximum}{0} [id HC] 'max'
| | | | | |Subtensor{:int32:} [id GY] ''
| | | | |ScalarFromTensor [id HA] ''
| | | |Subtensor{:int64:} [id HD] ''
| | | | |IncSubtensor{Set;:int32:} [id GV] ''
| | | | |Constant{-1} [id FY]
| | | |Constant{1} [id FZ]
| | |AdvancedSubtensor1 [id HE] ''
| | | |Elemwise{Composite{exp((i0 - i1))}} [id GX] ''
| | | |AdvancedSubtensor1 [id GH] ''
| | |Elemwise{Add}[(0, 1)] [id HF] ''
| | |TensorConstant{(1,) of 2} [id GC]
| | |AdvancedSubtensor1 [id GH] ''
| |InplaceDimShuffle{x} [id HB] ''
|ScalarFromTensor [id GS] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id ER] ''
IncSubtensor{Set;:int32:} [id FI] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id GD] ''
IncSubtensor{Set;:int32:} [id GP] ''
forall_inplace,cpu,scan_fn}.2 [id A] ''IncSubtensor{Set;:int32:} [id FI] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id GD] ''
IncSubtensor{Set;:int32:} [id GP] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id ER] ''
IncSubtensor{Set;:int32:} [id FI] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id GD] ''
IncSubtensor{Set;:int32:} [id GP] ''
forall_inplace,cpu,scan_fn}.3 [id A] ''IncSubtensor{Set;:int32:} [id FI] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id GD] ''
IncSubtensor{Set;:int32:} [id GP] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id ER] ''
IncSubtensor{Set;:int32:} [id FI] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id GD] ''
IncSubtensor{Set;:int32:} [id GP] ''
Apply node that caused the error: forall_inplace,cpu,scan_fn}(Elemwise{minimum,no_inplace}.0, Subtensor{int64:int64:int8}.0, Subtensor{int64:int64:int64, ::int64}.0, IncSubtensor{InplaceSet;:int64:}.0, IncSubtensor{InplaceSet;:int64:}.0, IncSubtensor{InplaceSet;:int64:}.0, IncSubtensor{InplaceSet;:int64:}.0, AdvancedSubtensor1.0, Alloc.0, AdvancedSubtensor1.0)IncSubtensor{Set;:int32:} [id FI] ''
Elemwise{Composite{Cast{int32}(minimum(maximum((i0 + i1), (i2 + i3)), i4))}} [id GD] ''
IncSubtensor{Set;:int32:} [id GP] ''
Toposort index: 124
Inputs types: [TensorType(int64, scalar), TensorType(float64, matrix), TensorType(float64, matrix), TensorType(int32, vector), TensorType(float64, matrix), TensorType(int32, vector), TensorType(float64, matrix), TensorType(int64, vector), TensorType(float64, vector), TensorType(int64, vector)]
Inputs shapes: [(), (3598, 1201), (3598, 1201), (3598,), (3598, 1201), (3598,), (3598, 1201), (595,), (1201,), (595,)]
Inputs strides: [(), (8, 28784), (-8, -28784), (4,), (9608, 8), (4,), (9608, 8), (8,), (8,), (8,)]
Inputs values: [array(3598), 'not shown', 'not shown', 'not shown', 'not shown', 'not shown', 'not shown', 'not shown', 'not shown', 'not shown']
Outputs clients: [[Subtensor{int64:int64:int8}(forall_inplace,cpu,scan_fn}.0, ScalarFromTensor.0, ScalarFromTensor.0, Constant{1})], [Subtensor{int64:int64:int8}(forall_inplace,cpu,scan_fn}.1, ScalarFromTensor.0, ScalarFromTensor.0, Constant{1})], [Subtensor{int64:int64:int8}(forall_inplace,cpu,scan_fn}.2, ScalarFromTensor.0, ScalarFromTensor.0, Constant{1})], [Subtensor{int64:int64:int64, ::int64}(forall_inplace,cpu,scan_fn}.3, ScalarFromTensor.0, ScalarFromTensor.0, Constant{-1}, Constant{-1})]]
*I don't know how to read the error information. Could anyone tell me where the error is?*
*Thank you very much!*
--
---
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 theano-users+***@googlegroups.com.
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 theano-users+***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.