Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
container.add_initializer(last_index_name, onnx_proto.TensorProto.INT64,
[], [len(op.estimators_) - 1])
concatenated_labels = _get_estimators_label(scope, operator,
container, op)
apply_mul(scope, [concatenated_labels, negate_name],
negated_labels_name, container, broadcast=1)
apply_topk(scope, negated_labels_name,
[sorted_values_name, sorted_indices_name],
container, k=len(op.estimators_))
container.add_node(
'ArrayFeatureExtractor',
[estimators_weights_name, sorted_indices_name],
array_feat_extractor_output_name, op_domain='ai.onnx.ml',
name=scope.get_unique_operator_name('ArrayFeatureExtractor'))
apply_reshape(
scope, array_feat_extractor_output_name, reshaped_weights_name,
container, desired_shape=(-1, len(op.estimators_)))
weights_cdf_name = cum_sum(
scope, container, reshaped_weights_name,
len(op.estimators_))
container.add_node(
'ArrayFeatureExtractor', [weights_cdf_name, last_index_name],
median_value_name, op_domain='ai.onnx.ml',
name=scope.get_unique_operator_name('ArrayFeatureExtractor'))
apply_mul(scope, [median_value_name, half_scalar_name],
comp_value_name, container, broadcast=1)
container.add_node(
'Less', [weights_cdf_name, comp_value_name],
median_or_above_name,
name=scope.get_unique_operator_name('Less'))
apply_cast(scope, median_or_above_name, cast_result_name,
dtype=container.dtype)
container.add_node(
op_type, operator.input_full_names,
[operator.outputs[0].full_name, operator.outputs[1].full_name],
op_domain='ai.onnx.ml', **attr_pairs)
else:
concatenated_proba_name = scope.get_unique_variable_name(
'concatenated_proba')
proba = []
for est in op.estimators_:
reshaped_est_proba_name = scope.get_unique_variable_name(
'reshaped_est_proba')
est_proba = predict(
est, scope, operator, container, op_type, is_ensemble=True)
apply_reshape(
scope, est_proba, reshaped_est_proba_name, container,
desired_shape=(1, op.n_outputs_, -1, len(op.classes_[0])))
proba.append(reshaped_est_proba_name)
apply_concat(scope, proba, concatenated_proba_name,
container, axis=0)
container.add_node('ReduceMean', concatenated_proba_name,
operator.outputs[1].full_name,
name=scope.get_unique_operator_name('ReduceMean'),
axes=[0], keepdims=0)
predictions = _calculate_labels(
scope, container, op, operator.outputs[1].full_name)
apply_concat(scope, predictions, operator.outputs[0].full_name,
container, axis=1)
[], [1. / n_classes])
container.add_initializer(
n_classes_minus_one_name, container.proto_dtype,
[], [n_classes - 1])
apply_clip(
scope, proba_name, clipped_proba_name, container,
operator_name=scope.get_unique_operator_name('Clip'),
min=np.finfo(float).eps)
container.add_node(
'Log', clipped_proba_name, log_proba_name,
name=scope.get_unique_operator_name('Log'))
container.add_node(
'ReduceSum', log_proba_name, reduced_proba_name, axes=[1],
name=scope.get_unique_operator_name('ReduceSum'))
apply_reshape(scope, reduced_proba_name,
reshaped_result_name, container,
desired_shape=(-1, 1))
apply_mul(scope, [reshaped_result_name, inverted_n_classes_name],
prod_result_name, container, broadcast=1)
apply_sub(scope, [log_proba_name, prod_result_name],
sub_result_name, container, broadcast=1)
apply_mul(scope, [sub_result_name, n_classes_minus_one_name],
samme_proba_name, container, broadcast=1)
return samme_proba_name
desired_shape=(-1, 1))
apply_sub(scope, [reshaped_df_name, calibrator_x_name],
distance_name, container, broadcast=1)
apply_abs(scope, distance_name, absolute_distance_name, container)
container.add_node('ArgMin', absolute_distance_name,
nearest_x_index_name, axis=1,
name=scope.get_unique_operator_name('ArgMin'))
container.add_node(
'ArrayFeatureExtractor',
[calibrator_y_name, nearest_x_index_name],
nearest_y_name, op_domain='ai.onnx.ml',
name=scope.get_unique_operator_name('ArrayFeatureExtractor'))
nearest_y_name_reshaped = scope.get_unique_variable_name(
'nearest_y_name_reshaped')
apply_reshape(scope, nearest_y_name,
nearest_y_name_reshaped, container,
desired_shape=(-1, 1))
return nearest_y_name_reshaped
[], [1. / (model.n_classes_ - 1)])
container.add_initializer(zero_scalar_name,
onnx_proto.TensorProto.INT32, [], [0])
container.add_node('Sum', proba_names_list,
summation_prob_name,
name=scope.get_unique_operator_name('Sum'))
apply_div(scope, [summation_prob_name, est_weights_sum_name],
div_result_name, container, broadcast=1)
apply_mul(scope, [div_result_name, mul_operand_name],
exp_operand_name, container, broadcast=1)
apply_exp(scope, exp_operand_name, exp_result_name, container)
container.add_node(
'ReduceSum', exp_result_name, reduced_exp_result_name, axes=[1],
name=scope.get_unique_operator_name('ReduceSum'))
apply_reshape(scope, reduced_exp_result_name,
normaliser_name, container,
desired_shape=(-1, 1))
apply_cast(scope, normaliser_name, cast_normaliser_name,
container, to=onnx_proto.TensorProto.INT32)
container.add_node('Equal', [cast_normaliser_name, zero_scalar_name],
comparison_result_name,
name=scope.get_unique_operator_name('Equal'))
apply_cast(scope, comparison_result_name, cast_output_name,
container, to=container.proto_dtype)
apply_add(scope, [normaliser_name, cast_output_name],
zero_filtered_normaliser_name,
container, broadcast=0)
apply_div(scope, [exp_result_name, zero_filtered_normaliser_name],
operator.outputs[1].full_name, container, broadcast=1)
return operator.outputs[1].full_name
model.classes_[k].shape, model.classes_[k])
container.add_node(
'ArrayFeatureExtractor', [transposed_result_name, k_name],
out_k_name, op_domain='ai.onnx.ml',
name=scope.get_unique_operator_name('ArrayFeatureExtractor'))
container.add_node(
'ArgMax', out_k_name, argmax_output_name,
name=scope.get_unique_operator_name('ArgMax'), axis=1)
apply_reshape(scope, argmax_output_name, reshaped_result_name,
container, desired_shape=(1, -1))
container.add_node(
'ArrayFeatureExtractor', [classes_name, reshaped_result_name],
preds_name, op_domain='ai.onnx.ml',
name=scope.get_unique_operator_name('ArrayFeatureExtractor'))
apply_reshape(scope, preds_name, reshaped_preds_name,
container, desired_shape=(-1, 1))
predictions.append(reshaped_preds_name)
return predictions
container.add_initializer(
k_name, onnx_proto.TensorProto.INT64,
[], [k])
container.add_initializer(
classes_name, onnx_proto.TensorProto.INT64,
model.classes_[k].shape, model.classes_[k])
container.add_node(
'ArrayFeatureExtractor', [transposed_result_name, k_name],
out_k_name, op_domain='ai.onnx.ml',
name=scope.get_unique_operator_name('ArrayFeatureExtractor'))
container.add_node(
'ArgMax', out_k_name, argmax_output_name,
name=scope.get_unique_operator_name('ArgMax'), axis=1)
apply_reshape(scope, argmax_output_name, reshaped_result_name,
container, desired_shape=(1, -1))
container.add_node(
'ArrayFeatureExtractor', [classes_name, reshaped_result_name],
preds_name, op_domain='ai.onnx.ml',
name=scope.get_unique_operator_name('ArrayFeatureExtractor'))
apply_reshape(scope, preds_name, reshaped_preds_name,
container, desired_shape=(-1, 1))
predictions.append(reshaped_preds_name)
return predictions
desired_shape=log_prob_shape)
apply_sub(scope, [sum_result_name, reshaped_log_prob_name], log_prob_name,
container, broadcast=1)
apply_exp(scope, log_prob_name, operator.outputs[1].full_name, container)
container.add_node(
'ArrayFeatureExtractor', [classes_name, argmax_output_name],
array_feature_extractor_result_name, op_domain='ai.onnx.ml',
name=scope.get_unique_operator_name('ArrayFeatureExtractor'))
# Reshape op does not seem to handle INT64 tensor even though it is
# listed as one of the supported types in the doc, so Cast was
# required here.
if class_type == onnx_proto.TensorProto.INT32:
apply_cast(scope, array_feature_extractor_result_name,
cast2_result_name, container,
to=proto_type)
apply_reshape(scope, cast2_result_name, reshaped_result_name,
container, desired_shape=output_shape)
apply_cast(scope, reshaped_result_name, operator.outputs[0].full_name,
container, to=onnx_proto.TensorProto.INT64)
else: # string labels
apply_reshape(scope, array_feature_extractor_result_name,
operator.outputs[0].full_name, container,
desired_shape=output_shape)
container.add_initializer(rec_weights_name,
container.proto_dtype, [1, 1, 1], [1])
apply_transpose(scope, rnn_input_name, transposed_input_name,
container, perm=(1, 0))
apply_reshape(scope, transposed_input_name, reshaped_result_name,
container, desired_shape=(sequence_length, -1, 1))
container.add_node(
'RNN', inputs=[reshaped_result_name,
weights_name, rec_weights_name],
outputs=[rnn_output_name], activations=['Affine'],
name=scope.get_unique_operator_name('RNN'),
activation_alpha=[1.0], activation_beta=[0.0], hidden_size=1)
apply_transpose(scope, rnn_output_name, permuted_rnn_y_name, container,
perm=(2, 0, 1, 3))
apply_reshape(
scope, permuted_rnn_y_name, weights_cdf_name, container,
desired_shape=(-1, sequence_length))
else:
axis_name = scope.get_unique_variable_name('axis_name')
container.add_initializer(axis_name, onnx_proto.TensorProto.INT32,
[], [1])
container.add_node(
'CumSum', [rnn_input_name, axis_name], [weights_cdf_name],
name=scope.get_unique_operator_name('CumSum'),
op_version=11)
return weights_cdf_name