diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0276b500..6c25d3fb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,9 +58,6 @@ jobs: run: | python -m pytest -m coremdf tests/ - - name: Pre-install PsyNeuLink (from development branch on github) - run: python -m pip install git+https://github.com/ModECI/PsyNeuLink@devel - - name: Install optional dependencies run: python -m pip install .[all] diff --git a/docs/MDF_function_specifications.json b/docs/MDF_function_specifications.json index 7fe33f13..880ec24e 100644 --- a/docs/MDF_function_specifications.json +++ b/docs/MDF_function_specifications.json @@ -92,6 +92,13 @@ ], "expression_string": "A * (A > 0)" }, + "onnx::HardSwish": { + "description": "\nHardSwish takes one input data (Tensor) and produces one output data (Tensor) where\nthe HardSwish function, y = x * max(0, min(1, alpha * x + beta)) = x * HardSigmoid(x),\nwhere alpha = 1/6 and beta = 0.5, is applied to the tensor elementwise.\n", + "arguments": [ + "X" + ], + "expression_string": "onnx_ops.hardswish(X)" + }, "onnx::LessOrEqual": { "description": "\nReturns the tensor resulted from performing the `less_equal` logical operation\nelementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n", "arguments": [ @@ -210,6 +217,14 @@ ], "expression_string": "onnx_ops.bitshift(X, Y, direction)" }, + "onnx::Trilu": { + "description": "\nGiven a 2-D matrix or batches of 2-D matrices, returns the upper or lower triangular part of the tensor(s).\nThe attribute \"upper\" determines whether the upper or lower part is retained. If set to true,\nthe upper triangular matrix is retained. Lower triangular matrix is retained otherwise.\nDefault value for the \"upper\" attribute is true.\nTrilu takes one input tensor of shape [*, N, M], where * is zero or more batch dimensions. The upper triangular part consists\nof the elements on and above the given diagonal (k). The lower triangular part consists of elements on and below the diagonal.\nAll other elements in the matrix are set to zero.\nIf k = 0, the triangular part on and above/below the main diagonal is retained.\nIf upper is set to true, a positive k retains the upper triangular matrix excluding the main diagonal and (k-1) diagonals above it.\nA negative k value retains the main diagonal and |k| diagonals below it.\nIf upper is set to false, a positive k retains the lower triangular matrix including the main diagonal and k diagonals above it.\nA negative k value excludes the main diagonal and (|k|-1) diagonals below it.\n", + "arguments": [ + "input", + "k" + ], + "expression_string": "onnx_ops.trilu(input, k, upper)" + }, "onnx::RoiAlign": { "description": "\nRegion of Interest (RoI) align operation described in the\n[Mask R-CNN paper](https://arxiv.org/abs/1703.06870).\nRoiAlign consumes an input tensor X and region of interests (rois)\nto apply pooling across each RoI; it produces a 4-D tensor of shape\n(num_rois, C, output_height, output_width).\n\nRoiAlign is proposed to avoid the misalignment by removing\nquantizations while converting from original image into feature\nmap and from feature map into RoI feature; in each ROI bin,\nthe value of the sampled locations are computed directly\nthrough bilinear interpolation.\n", "arguments": [ @@ -533,7 +548,7 @@ "expression_string": "onnx_ops.tile(input, repeats)" }, "onnx::Sub": { - "description": "\nPerforms element-wise binary subtraction (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n", + "description": "\nPerforms element-wise binary subtraction (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n\n(Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16.\n", "arguments": [ "A", "B" @@ -730,7 +745,7 @@ "expression_string": "onnx_ops.reciprocal(X)" }, "onnx::Mul": { - "description": "\nPerforms element-wise binary multiplication (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n", + "description": "\nPerforms element-wise binary multiplication (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n\n(Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16.\n", "arguments": [ "A", "B" @@ -782,7 +797,7 @@ "sequence_lens", "initial_h" ], - "expression_string": "onnx_ops.rnn(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size)" + "expression_string": "onnx_ops.rnn(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout)" }, "onnx::Pad": { "description": "\nGiven a tensor containing the data to be padded (`data`), a tensor containing the number of start and end pad values for axis (`pads`), (optionally) a `mode`, and (optionally) `constant_value`,\na padded tensor (`output`) is generated.\n\nThe three supported `modes` are (similar to corresponding modes supported by `numpy.pad`):\n\n1) `constant`(default) - pads with a given constant value as specified by `constant_value` (which defaults to 0, empty string, or False)\n\n2) `reflect` - pads with the reflection of the vector mirrored on the first and last values of the vector along each axis\n\n3) `edge` - pads with the edge values of array\n\n\nExample 1 (`constant` mode):\n Insert 0 pads to the beginning of the second dimension.\n\n data =\n [\n [1.0, 1.2],\n [2.3, 3.4],\n [4.5, 5.7],\n ]\n\n pads = [0, 2, 0, 0]\n\n mode = 'constant'\n\n constant_value = 0.0\n\n output =\n [\n [0.0, 0.0, 1.0, 1.2],\n [0.0, 0.0, 2.3, 3.4],\n [0.0, 0.0, 4.5, 5.7],\n ]\n\n\nExample 2 (`reflect` mode):\n data =\n [\n [1.0, 1.2],\n [2.3, 3.4],\n [4.5, 5.7],\n ]\n\n pads = [0, 2, 0, 0]\n\n mode = 'reflect'\n\n output =\n [\n [1.0, 1.2, 1.0, 1.2],\n [2.3, 3.4, 2.3, 3.4],\n [4.5, 5.7, 4.5, 5.7],\n ]\n\n\nExample 3 (`edge` mode):\n data =\n [\n [1.0, 1.2],\n [2.3, 3.4],\n [4.5, 5.7],\n ]\n\n pads = [0, 2, 0, 0]\n\n mode = 'edge'\n\n output =\n [\n [1.0, 1.0, 1.0, 1.2],\n [2.3, 2.3, 2.3, 3.4],\n [4.5, 4.5, 4.5, 5.7],\n ]\n\n", @@ -843,12 +858,12 @@ "expression_string": "onnx_ops.mean(data_0)" }, "onnx::Reshape": { - "description": "\nReshape the input tensor similar to numpy.reshape.\nFirst input is the data tensor, second input is a shape tensor which specifies the output shape. It outputs the reshaped tensor.\nAt most one dimension of the new shape can be -1. In this case, the value is\ninferred from the size of the tensor and the remaining dimensions. A dimension\ncould also be 0, in which case the actual dimension value is unchanged (i.e. taken\nfrom the input tensor).", + "description": "\nReshape the input tensor similar to numpy.reshape.\nFirst input is the data tensor, second input is a shape tensor which specifies the output shape. It outputs the reshaped tensor.\nAt most one dimension of the new shape can be -1. In this case, the value is\ninferred from the size of the tensor and the remaining dimensions. A dimension\ncould also be 0, in which case the actual dimension value is unchanged (i.e. taken\nfrom the input tensor). If 'allowzero' is set, and the new shape includes 0, the\ndimension will be set explicitly to zero (i.e. not taken from input tensor)", "arguments": [ "data", "shape" ], - "expression_string": "onnx_ops.reshape(data, shape)" + "expression_string": "onnx_ops.reshape(data, shape, allowzero)" }, "onnx::ReduceL2": { "description": "\nComputes the L2 norm of the input tensor's element along the provided axes. The resulted\ntensor has the same rank as the input if keepdims equal 1. If keepdims equal 0, then\nthe resulted tensor have the reduced dimension pruned.\n\nThe above behavior is similar to numpy, with the exception that numpy default keepdims to\nFalse instead of True.", @@ -923,15 +938,15 @@ "expression_string": "onnx_ops.leakyrelu(X, alpha)" }, "onnx::BatchNormalization": { - "description": "\nCarries out batch normalization as described in the paper\nhttps://arxiv.org/abs/1502.03167. Depending on the mode it is being run,\nthere are multiple cases for the number of outputs, which we list below:\n\nOutput case #1: Y, mean, var, saved_mean, saved_var (training mode)\nOutput case #2: Y (test mode)\n\nFor previous (depreciated) non-spatial cases, implementors are suggested\nto flatten the input shape to (N x C*D1*D2 ..*Dn) before a BatchNormalization Op.\nThis operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.\n", + "description": "\nCarries out batch normalization as described in the paper\nhttps://arxiv.org/abs/1502.03167. Depending on the mode it is being run,\nThere are five required inputs 'X', 'scale', 'B', 'input_mean' and\n'input_var'.\nNote that 'input_mean' and 'input_var' are expected to be the estimated\nstatistics in inference mode (training_mode=False, default),\nand the running statistics in training mode (training_mode=True).\nThere are multiple cases for the number of outputs, which we list below:\n\nOutput case #1: Y, running_mean, running_var (training_mode=True)\nOutput case #2: Y (training_mode=False)\n\nWhen training_mode=False, extra outputs are invalid.\nThe outputs are updated as follows when training_mode=True:\n```\nrunning_mean = input_mean * momentum + current_mean * (1 - momentum)\nrunning_var = input_var * momentum + current_var * (1 - momentum)\n\nY = (X - current_mean) / sqrt(current_var + epsilon) * scale + B\n\nwhere:\n\ncurrent_mean = ReduceMean(X, axis=all_except_channel_index)\ncurrent_var = ReduceVar(X, axis=all_except_channel_index)\n\nNotice that ReduceVar refers to the population variance, and it equals to\nsum(sqrd(x_i - x_avg)) / N\nwhere N is the population size (this formula does not use sample size N - 1).\n\n```\n\nWhen training_mode=False:\n```\nY = (X - input_mean) / sqrt(input_var + epsilon) * scale + B\n```\n\nFor previous (depreciated) non-spatial cases, implementors are suggested\nto flatten the input shape to (N x C * D1 * D2 * ... * Dn) before a BatchNormalization Op.\nThis operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.\n", "arguments": [ "X", "scale", "B", - "mean", - "var" + "input_mean", + "input_var" ], - "expression_string": "onnx_ops.batchnormalization(X, scale, B, mean, var, epsilon, momentum)" + "expression_string": "onnx_ops.batchnormalization(X, scale, B, input_mean, input_var, epsilon, momentum, training_mode)" }, "onnx::Cosh": { "description": "\nCalculates the hyperbolic cosine of the given input tensor element-wise.\n", @@ -967,7 +982,7 @@ "initial_c", "P" ], - "expression_string": "onnx_ops.lstm(X, W, R, B, sequence_lens, initial_h, initial_c, P, activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget)" + "expression_string": "onnx_ops.lstm(X, W, R, B, sequence_lens, initial_h, initial_c, P, activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget, layout)" }, "onnx::Unsqueeze": { "description": "\nInsert single-dimensional entries to the shape of an input tensor (`data`).\nTakes one required input `axes` - which contains a list of dimension indices and this operator will insert a dimension of value `1` into the corresponding index of the output tensor (`expanded`).\n\nFor example:\n Given an input tensor (`data`) of shape [3, 4, 5], then\n Unsqueeze(data, axes=[0, 4]) outputs a tensor (`expanded`) containing same data as `data` but with shape [1, 3, 4, 5, 1].\n\nThe input `axes` should not contain any duplicate entries. It is an error if it contains duplicates.\nThe rank of the output tensor (`output_rank`) is the rank of the input tensor (`data`) plus the number of values in `axes`.\nEach value in `axes` should be within the (inclusive) range [-output_rank , output_rank - 1].\nThe order of values in `axes` does not matter and can come in any order.\n\n", @@ -1128,7 +1143,7 @@ "sequence_lens", "initial_h" ], - "expression_string": "onnx_ops.gru(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size, linear_before_reset)" + "expression_string": "onnx_ops.gru(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, linear_before_reset)" }, "onnx::Resize": { "description": "\nResize the input tensor. In general, it calculates every value in the output tensor as a weighted average of neighborhood (a.k.a. sampling locations) in the input tensor.\nEach dimension value of the output tensor is:\n output_dimension = floor(input_dimension * (roi_end - roi_start) * scale) if input \\\"sizes\\\" is not specified.\n", @@ -1197,7 +1212,7 @@ "expression_string": "onnx_ops.argmin(data, axis, keepdims, select_last_index)" }, "onnx::Add": { - "description": "\nPerforms element-wise binary addition (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n", + "description": "\nPerforms element-wise binary addition (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n\n(Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16.\n", "arguments": [ "A", "B" @@ -1248,7 +1263,7 @@ "expression_string": "onnx_ops.min(data_0)" }, "onnx::Div": { - "description": "\nPerforms element-wise binary division (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n", + "description": "\nPerforms element-wise binary division (with Numpy-style broadcasting support).\n\nThis operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md).\n\n(Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16.\n", "arguments": [ "A", "B" diff --git a/docs/MDF_function_specifications.yaml b/docs/MDF_function_specifications.yaml index b5f2feef..b747f541 100644 --- a/docs/MDF_function_specifications.yaml +++ b/docs/MDF_function_specifications.yaml @@ -69,6 +69,21 @@ Relu: arguments: - A expression_string: A * (A > 0) +onnx::HardSwish: + description: ' + + HardSwish takes one input data (Tensor) and produces one output data (Tensor) + where + + the HardSwish function, y = x * max(0, min(1, alpha * x + beta)) = x * HardSigmoid(x), + + where alpha = 1/6 and beta = 0.5, is applied to the tensor elementwise. + + ' + arguments: + - X + expression_string: onnx_ops.hardswish(X) onnx::LessOrEqual: description: ' @@ -442,6 +457,46 @@ onnx::BitShift: - X - Y expression_string: onnx_ops.bitshift(X, Y, direction) +onnx::Trilu: + description: ' + + Given a 2-D matrix or batches of 2-D matrices, returns the upper or lower + triangular part of the tensor(s). + + The attribute "upper" determines whether the upper or lower part is retained. + If set to true, + + the upper triangular matrix is retained. Lower triangular matrix is retained + otherwise. + + Default value for the "upper" attribute is true. + + Trilu takes one input tensor of shape [*, N, M], where * is zero or more batch + dimensions. The upper triangular part consists + + of the elements on and above the given diagonal (k). The lower triangular + part consists of elements on and below the diagonal. + + All other elements in the matrix are set to zero. + + If k = 0, the triangular part on and above/below the main diagonal is retained. + + If upper is set to true, a positive k retains the upper triangular matrix + excluding the main diagonal and (k-1) diagonals above it. + + A negative k value retains the main diagonal and |k| diagonals below it. + + If upper is set to false, a positive k retains the lower triangular matrix + including the main diagonal and k diagonals above it. + + A negative k value excludes the main diagonal and (|k|-1) diagonals below + it. + + ' + arguments: + - input + - k + expression_string: onnx_ops.trilu(input, k, upper) onnx::RoiAlign: description: ' @@ -1354,6 +1409,10 @@ onnx::Sub: This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, + and int16. + ' arguments: - A @@ -1738,6 +1797,10 @@ onnx::Mul: This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, + and int16. + ' arguments: - A @@ -1854,7 +1917,7 @@ onnx::RNN: - sequence_lens - initial_h expression_string: onnx_ops.rnn(X, W, R, B, sequence_lens, initial_h, activation_alpha, - activation_beta, activations, clip, direction, hidden_size) + activation_beta, activations, clip, direction, hidden_size, layout) onnx::Pad: description: "\nGiven a tensor containing the data to be padded (`data`), a tensor\ \ containing the number of start and end pad values for axis (`pads`), (optionally)\ @@ -2006,11 +2069,14 @@ onnx::Reshape: could also be 0, in which case the actual dimension value is unchanged (i.e. taken - from the input tensor).' + from the input tensor). If ''allowzero'' is set, and the new shape includes + 0, the + + dimension will be set explicitly to zero (i.e. not taken from input tensor)' arguments: - data - shape - expression_string: onnx_ops.reshape(data, shape) + expression_string: onnx_ops.reshape(data, shape, allowzero) onnx::ReduceL2: description: ' @@ -2226,17 +2292,69 @@ onnx::BatchNormalization: https://arxiv.org/abs/1502.03167. Depending on the mode it is being run, - there are multiple cases for the number of outputs, which we list below: + There are five required inputs ''X'', ''scale'', ''B'', ''input_mean'' and + + ''input_var''. + + Note that ''input_mean'' and ''input_var'' are expected to be the estimated + + statistics in inference mode (training_mode=False, default), + and the running statistics in training mode (training_mode=True). - Output case #1: Y, mean, var, saved_mean, saved_var (training mode) + There are multiple cases for the number of outputs, which we list below: - Output case #2: Y (test mode) + + Output case #1: Y, running_mean, running_var (training_mode=True) + + Output case #2: Y (training_mode=False) + + + When training_mode=False, extra outputs are invalid. + + The outputs are updated as follows when training_mode=True: + + ``` + + running_mean = input_mean * momentum + current_mean * (1 - momentum) + + running_var = input_var * momentum + current_var * (1 - momentum) + + + Y = (X - current_mean) / sqrt(current_var + epsilon) * scale + B + + + where: + + + current_mean = ReduceMean(X, axis=all_except_channel_index) + + current_var = ReduceVar(X, axis=all_except_channel_index) + + + Notice that ReduceVar refers to the population variance, and it equals to + + sum(sqrd(x_i - x_avg)) / N + + where N is the population size (this formula does not use sample size N - + 1). + + + ``` + + + When training_mode=False: + + ``` + + Y = (X - input_mean) / sqrt(input_var + epsilon) * scale + B + + ``` For previous (depreciated) non-spatial cases, implementors are suggested - to flatten the input shape to (N x C*D1*D2 ..*Dn) before a BatchNormalization + to flatten the input shape to (N x C * D1 * D2 * ... * Dn) before a BatchNormalization Op. This operator has **optional** inputs/outputs. See [the doc](IR.md) for more @@ -2250,10 +2368,10 @@ onnx::BatchNormalization: - X - scale - B - - mean - - var - expression_string: onnx_ops.batchnormalization(X, scale, B, mean, var, epsilon, - momentum) + - input_mean + - input_var + expression_string: onnx_ops.batchnormalization(X, scale, B, input_mean, input_var, + epsilon, momentum, training_mode) onnx::Cosh: description: ' @@ -2375,7 +2493,7 @@ onnx::LSTM: - P expression_string: onnx_ops.lstm(X, W, R, B, sequence_lens, initial_h, initial_c, P, activation_alpha, activation_beta, activations, clip, direction, hidden_size, - input_forget) + input_forget, layout) onnx::Unsqueeze: description: "\nInsert single-dimensional entries to the shape of an input tensor\ \ (`data`).\nTakes one required input `axes` - which contains a list of dimension\ @@ -2720,7 +2838,7 @@ onnx::GRU: - sequence_lens - initial_h expression_string: onnx_ops.gru(X, W, R, B, sequence_lens, initial_h, activation_alpha, - activation_beta, activations, clip, direction, hidden_size, linear_before_reset) + activation_beta, activations, clip, direction, hidden_size, layout, linear_before_reset) onnx::Resize: description: "\nResize the input tensor. In general, it calculates every value\ \ in the output tensor as a weighted average of neighborhood (a.k.a. sampling\ @@ -2861,6 +2979,10 @@ onnx::Add: This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, + and int16. + ' arguments: - A @@ -2979,6 +3101,10 @@ onnx::Div: This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, + and int16. + ' arguments: - A diff --git a/docs/sphinx/source/api/MDF_function_specifications.md b/docs/sphinx/source/api/MDF_function_specifications.md index 4867d67e..5fec6ecb 100644 --- a/docs/sphinx/source/api/MDF_function_specifications.md +++ b/docs/sphinx/source/api/MDF_function_specifications.md @@ -2,7 +2,7 @@ **Note: the ModECI MDF specification is still in development! Subject to change without (much) notice.** See [here](https://github.com/ModECI/MDF/issues?q=is%3Aissue+is%3Aopen+label%3Aspecification) for ongoing discussions. These functions are defined in https://github.com/ModECI/MDF/blob/main/src/modeci_mdf/standard_functions.py ## All functions: - | MatMul | Relu | change_goal | check_termination | conflict_resolution_function | cos | cosh | exponential | linear | logistic | onnx::Abs | onnx::Acos | onnx::Acosh | onnx::Add | onnx::And | onnx::ArgMax | onnx::ArgMin | onnx::Asin | onnx::Asinh | onnx::Atan | onnx::Atanh | onnx::AveragePool | onnx::BatchNormalization | onnx::BitShift | onnx::Cast | onnx::Ceil | onnx::Celu | onnx::Clip | onnx::Compress | onnx::Concat | onnx::ConcatFromSequence | onnx::Constant | onnx::ConstantOfShape | onnx::Conv | onnx::ConvInteger | onnx::ConvTranspose | onnx::Cos | onnx::Cosh | onnx::CumSum | onnx::DepthToSpace | onnx::DequantizeLinear | onnx::Det | onnx::Div | onnx::Dropout | onnx::DynamicQuantizeLinear | onnx::Einsum | onnx::Elu | onnx::Equal | onnx::Erf | onnx::Exp | onnx::Expand | onnx::EyeLike | onnx::Flatten | onnx::Floor | onnx::GRU | onnx::Gather | onnx::GatherElements | onnx::GatherND | onnx::Gemm | onnx::GlobalAveragePool | onnx::GlobalLpPool | onnx::GlobalMaxPool | onnx::Greater | onnx::GreaterOrEqual | onnx::HardSigmoid | onnx::Hardmax | onnx::Identity | onnx::If | onnx::InstanceNormalization | onnx::IsInf | onnx::IsNaN | onnx::LRN | onnx::LSTM | onnx::LeakyRelu | onnx::Less | onnx::LessOrEqual | onnx::Log | onnx::LogSoftmax | onnx::Loop | onnx::LpNormalization | onnx::LpPool | onnx::MatMul | onnx::MatMulInteger | onnx::Max | onnx::MaxPool | onnx::MaxRoiPool | onnx::MaxUnpool | onnx::Mean | onnx::MeanVarianceNormalization | onnx::Min | onnx::Mod | onnx::Mul | onnx::Multinomial | onnx::Neg | onnx::NegativeLogLikelihoodLoss | onnx::NonMaxSuppression | onnx::NonZero | onnx::Not | onnx::OneHot | onnx::Or | onnx::PRelu | onnx::Pad | onnx::Pow | onnx::QLinearConv | onnx::QLinearMatMul | onnx::QuantizeLinear | onnx::RNN | onnx::RandomNormal | onnx::RandomNormalLike | onnx::RandomUniform | onnx::RandomUniformLike | onnx::Range | onnx::Reciprocal | onnx::ReduceL1 | onnx::ReduceL2 | onnx::ReduceLogSum | onnx::ReduceLogSumExp | onnx::ReduceMax | onnx::ReduceMean | onnx::ReduceMin | onnx::ReduceProd | onnx::ReduceSum | onnx::ReduceSumSquare | onnx::Relu | onnx::Reshape | onnx::Resize | onnx::ReverseSequence | onnx::RoiAlign | onnx::Round | onnx::Scan | onnx::Scatter | onnx::ScatterElements | onnx::ScatterND | onnx::Selu | onnx::SequenceAt | onnx::SequenceConstruct | onnx::SequenceEmpty | onnx::SequenceErase | onnx::SequenceInsert | onnx::SequenceLength | onnx::Shape | onnx::Shrink | onnx::Sigmoid | onnx::Sign | onnx::Sin | onnx::Sinh | onnx::Size | onnx::Slice | onnx::Softmax | onnx::SoftmaxCrossEntropyLoss | onnx::Softplus | onnx::Softsign | onnx::SpaceToDepth | onnx::Split | onnx::SplitToSequence | onnx::Sqrt | onnx::Squeeze | onnx::StringNormalizer | onnx::Sub | onnx::Sum | onnx::Tan | onnx::Tanh | onnx::TfIdfVectorizer | onnx::ThresholdedRelu | onnx::Tile | onnx::TopK | onnx::Transpose | onnx::Unique | onnx::Unsqueeze | onnx::Upsample | onnx::Where | onnx::Xor | pattern_matching_function | retrieve_chunk | sin | sinh | tan | tanh | update_goal | update_retrieval | + | MatMul | Relu | change_goal | check_termination | conflict_resolution_function | cos | cosh | exponential | linear | logistic | onnx::Abs | onnx::Acos | onnx::Acosh | onnx::Add | onnx::And | onnx::ArgMax | onnx::ArgMin | onnx::Asin | onnx::Asinh | onnx::Atan | onnx::Atanh | onnx::AveragePool | onnx::BatchNormalization | onnx::BitShift | onnx::Cast | onnx::Ceil | onnx::Celu | onnx::Clip | onnx::Compress | onnx::Concat | onnx::ConcatFromSequence | onnx::Constant | onnx::ConstantOfShape | onnx::Conv | onnx::ConvInteger | onnx::ConvTranspose | onnx::Cos | onnx::Cosh | onnx::CumSum | onnx::DepthToSpace | onnx::DequantizeLinear | onnx::Det | onnx::Div | onnx::Dropout | onnx::DynamicQuantizeLinear | onnx::Einsum | onnx::Elu | onnx::Equal | onnx::Erf | onnx::Exp | onnx::Expand | onnx::EyeLike | onnx::Flatten | onnx::Floor | onnx::GRU | onnx::Gather | onnx::GatherElements | onnx::GatherND | onnx::Gemm | onnx::GlobalAveragePool | onnx::GlobalLpPool | onnx::GlobalMaxPool | onnx::Greater | onnx::GreaterOrEqual | onnx::HardSigmoid | onnx::HardSwish | onnx::Hardmax | onnx::Identity | onnx::If | onnx::InstanceNormalization | onnx::IsInf | onnx::IsNaN | onnx::LRN | onnx::LSTM | onnx::LeakyRelu | onnx::Less | onnx::LessOrEqual | onnx::Log | onnx::LogSoftmax | onnx::Loop | onnx::LpNormalization | onnx::LpPool | onnx::MatMul | onnx::MatMulInteger | onnx::Max | onnx::MaxPool | onnx::MaxRoiPool | onnx::MaxUnpool | onnx::Mean | onnx::MeanVarianceNormalization | onnx::Min | onnx::Mod | onnx::Mul | onnx::Multinomial | onnx::Neg | onnx::NegativeLogLikelihoodLoss | onnx::NonMaxSuppression | onnx::NonZero | onnx::Not | onnx::OneHot | onnx::Or | onnx::PRelu | onnx::Pad | onnx::Pow | onnx::QLinearConv | onnx::QLinearMatMul | onnx::QuantizeLinear | onnx::RNN | onnx::RandomNormal | onnx::RandomNormalLike | onnx::RandomUniform | onnx::RandomUniformLike | onnx::Range | onnx::Reciprocal | onnx::ReduceL1 | onnx::ReduceL2 | onnx::ReduceLogSum | onnx::ReduceLogSumExp | onnx::ReduceMax | onnx::ReduceMean | onnx::ReduceMin | onnx::ReduceProd | onnx::ReduceSum | onnx::ReduceSumSquare | onnx::Relu | onnx::Reshape | onnx::Resize | onnx::ReverseSequence | onnx::RoiAlign | onnx::Round | onnx::Scan | onnx::Scatter | onnx::ScatterElements | onnx::ScatterND | onnx::Selu | onnx::SequenceAt | onnx::SequenceConstruct | onnx::SequenceEmpty | onnx::SequenceErase | onnx::SequenceInsert | onnx::SequenceLength | onnx::Shape | onnx::Shrink | onnx::Sigmoid | onnx::Sign | onnx::Sin | onnx::Sinh | onnx::Size | onnx::Slice | onnx::Softmax | onnx::SoftmaxCrossEntropyLoss | onnx::Softplus | onnx::Softsign | onnx::SpaceToDepth | onnx::Split | onnx::SplitToSequence | onnx::Sqrt | onnx::Squeeze | onnx::StringNormalizer | onnx::Sub | onnx::Sum | onnx::Tan | onnx::Tanh | onnx::TfIdfVectorizer | onnx::ThresholdedRelu | onnx::Tile | onnx::TopK | onnx::Transpose | onnx::Trilu | onnx::Unique | onnx::Unsqueeze | onnx::Upsample | onnx::Where | onnx::Xor | pattern_matching_function | retrieve_chunk | sin | sinh | tan | tanh | update_goal | update_retrieval | ## linear

A linear function, calculated from a slope and an intercept

linear(variable0, slope, intercept) = (variable0 * slope + intercept)

@@ -58,6 +58,15 @@ These functions are defined in https://github.com/ModECI/MDF/blob/main/src/modec

Relu(A) = A * (A > 0)

Python version: A * (A > 0)

+## onnx::HardSwish +

+HardSwish takes one input data (Tensor) and produces one output data (Tensor) where +the HardSwish function, y = x * max(0, min(1, alpha * x + beta)) = x * HardSigmoid(x), +where alpha = 1/6 and beta = 0.5, is applied to the tensor elementwise. +

+

onnx::HardSwish(X) = onnx_ops.hardswish(X)

+

Python version: onnx_ops.hardswish(X)

+ ## onnx::LessOrEqual

Returns the tensor resulted from performing the `less_equal` logical operation @@ -504,6 +513,24 @@ This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; fo

onnx::BitShift(X, Y) = onnx_ops.bitshift(X, Y, direction)

Python version: onnx_ops.bitshift(X, Y, direction)

+## onnx::Trilu +

+Given a 2-D matrix or batches of 2-D matrices, returns the upper or lower triangular part of the tensor(s). +The attribute "upper" determines whether the upper or lower part is retained. If set to true, +the upper triangular matrix is retained. Lower triangular matrix is retained otherwise. +Default value for the "upper" attribute is true. +Trilu takes one input tensor of shape [*, N, M], where * is zero or more batch dimensions. The upper triangular part consists +of the elements on and above the given diagonal (k). The lower triangular part consists of elements on and below the diagonal. +All other elements in the matrix are set to zero. +If k = 0, the triangular part on and above/below the main diagonal is retained. +If upper is set to true, a positive k retains the upper triangular matrix excluding the main diagonal and (k-1) diagonals above it. +A negative k value retains the main diagonal and |k| diagonals below it. +If upper is set to false, a positive k retains the lower triangular matrix including the main diagonal and k diagonals above it. +A negative k value excludes the main diagonal and (|k|-1) diagonals below it. +

+

onnx::Trilu(input, k) = onnx_ops.trilu(input, k, upper)

+

Python version: onnx_ops.trilu(input, k, upper)

+ ## onnx::RoiAlign

Region of Interest (RoI) align operation described in the @@ -1191,6 +1218,8 @@ For example A = [[1, 2], [3, 4]], B = [1, 2], tile(A, B) = [[1, 2, 1, 2], [3, 4, Performs element-wise binary subtraction (with Numpy-style broadcasting support). This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +(Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16.

onnx::Sub(A, B) = onnx_ops.sub(A, B)

Python version: onnx_ops.sub(A, B)

@@ -1514,6 +1543,8 @@ the tensor elementwise. Performs element-wise binary multiplication (with Numpy-style broadcasting support). This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +(Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16.

onnx::Mul(A, B) = onnx_ops.mul(A, B)

Python version: onnx_ops.mul(A, B)

@@ -1631,8 +1662,8 @@ Equations (Default: f=Tanh): - Ht = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Wbi + Rbi) This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.

-

onnx::RNN(X, W, R, B, sequence_lens, initial_h) = onnx_ops.rnn(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size)

-

Python version: onnx_ops.rnn(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size)

+

onnx::RNN(X, W, R, B, sequence_lens, initial_h) = onnx_ops.rnn(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout)

+

Python version: onnx_ops.rnn(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout)

## onnx::Pad

@@ -1813,9 +1844,10 @@ First input is the data tensor, second input is a shape tensor which specifies t At most one dimension of the new shape can be -1. In this case, the value is inferred from the size of the tensor and the remaining dimensions. A dimension could also be 0, in which case the actual dimension value is unchanged (i.e. taken -from the input tensor).

-

onnx::Reshape(data, shape) = onnx_ops.reshape(data, shape)

-

Python version: onnx_ops.reshape(data, shape)

+from the input tensor). If 'allowzero' is set, and the new shape includes 0, the +dimension will be set explicitly to zero (i.e. not taken from input tensor)

+

onnx::Reshape(data, shape) = onnx_ops.reshape(data, shape, allowzero)

+

Python version: onnx_ops.reshape(data, shape, allowzero)

## onnx::ReduceL2

@@ -2047,17 +2079,46 @@ output data (Tensor) where the function `f(x) = alpha * x for x < 0`,

Carries out batch normalization as described in the paper https://arxiv.org/abs/1502.03167. Depending on the mode it is being run, -there are multiple cases for the number of outputs, which we list below: +There are five required inputs 'X', 'scale', 'B', 'input_mean' and +'input_var'. +Note that 'input_mean' and 'input_var' are expected to be the estimated +statistics in inference mode (training_mode=False, default), +and the running statistics in training mode (training_mode=True). +There are multiple cases for the number of outputs, which we list below: + +Output case #1: Y, running_mean, running_var (training_mode=True) +Output case #2: Y (training_mode=False) + +When training_mode=False, extra outputs are invalid. +The outputs are updated as follows when training_mode=True: +``` +running_mean = input_mean * momentum + current_mean * (1 - momentum) +running_var = input_var * momentum + current_var * (1 - momentum) + +Y = (X - current_mean) / sqrt(current_var + epsilon) * scale + B -Output case #1: Y, mean, var, saved_mean, saved_var (training mode) -Output case #2: Y (test mode) +where: + +current_mean = ReduceMean(X, axis=all_except_channel_index) +current_var = ReduceVar(X, axis=all_except_channel_index) + +Notice that ReduceVar refers to the population variance, and it equals to +sum(sqrd(x_i - x_avg)) / N +where N is the population size (this formula does not use sample size N - 1). + +``` + +When training_mode=False: +``` +Y = (X - input_mean) / sqrt(input_var + epsilon) * scale + B +``` For previous (depreciated) non-spatial cases, implementors are suggested -to flatten the input shape to (N x C*D1*D2 ..*Dn) before a BatchNormalization Op. +to flatten the input shape to (N x C * D1 * D2 * ... * Dn) before a BatchNormalization Op. This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.

-

onnx::BatchNormalization(X, scale, B, mean, var) = onnx_ops.batchnormalization(X, scale, B, mean, var, epsilon, momentum)

-

Python version: onnx_ops.batchnormalization(X, scale, B, mean, var, epsilon, momentum)

+

onnx::BatchNormalization(X, scale, B, input_mean, input_var) = onnx_ops.batchnormalization(X, scale, B, input_mean, input_var, epsilon, momentum, training_mode)

+

Python version: onnx_ops.batchnormalization(X, scale, B, input_mean, input_var, epsilon, momentum, training_mode)

## onnx::Cosh

@@ -2182,8 +2243,8 @@ Equations (Default: f=Sigmoid, g=Tanh, h=Tanh): - Ht = ot (.) h(Ct) This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.

-

onnx::LSTM(X, W, R, B, sequence_lens, initial_h, initial_c, P) = onnx_ops.lstm(X, W, R, B, sequence_lens, initial_h, initial_c, P, activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget)

-

Python version: onnx_ops.lstm(X, W, R, B, sequence_lens, initial_h, initial_c, P, activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget)

+

onnx::LSTM(X, W, R, B, sequence_lens, initial_h, initial_c, P) = onnx_ops.lstm(X, W, R, B, sequence_lens, initial_h, initial_c, P, activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget, layout)

+

Python version: onnx_ops.lstm(X, W, R, B, sequence_lens, initial_h, initial_c, P, activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget, layout)

## onnx::Unsqueeze

@@ -2537,8 +2598,8 @@ Equations (Default: f=Sigmoid, g=Tanh): - Ht = (1 - zt) (.) ht + zt (.) Ht-1 This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted.

-

onnx::GRU(X, W, R, B, sequence_lens, initial_h) = onnx_ops.gru(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size, linear_before_reset)

-

Python version: onnx_ops.gru(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size, linear_before_reset)

+

onnx::GRU(X, W, R, B, sequence_lens, initial_h) = onnx_ops.gru(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, linear_before_reset)

+

Python version: onnx_ops.gru(X, W, R, B, sequence_lens, initial_h, activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, linear_before_reset)

## onnx::Resize

@@ -2695,6 +2756,8 @@ The type of the output tensor is integer.

Performs element-wise binary addition (with Numpy-style broadcasting support). This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +(Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16.

onnx::Add(A, B) = onnx_ops.add(A, B)

Python version: onnx_ops.add(A, B)

@@ -2785,6 +2848,8 @@ This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; fo Performs element-wise binary division (with Numpy-style broadcasting support). This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +(Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16.

onnx::Div(A, B) = onnx_ops.div(A, B)

Python version: onnx_ops.div(A, B)

diff --git a/examples/ACT-R/addition.json b/examples/ACT-R/addition.json index 83c4e227..8a369530 100644 --- a/examples/ACT-R/addition.json +++ b/examples/ACT-R/addition.json @@ -1,7 +1,7 @@ { "addition": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "addition_graph": { "nodes": { diff --git a/examples/ACT-R/addition.yaml b/examples/ACT-R/addition.yaml index ec25d2c7..daa20353 100644 --- a/examples/ACT-R/addition.yaml +++ b/examples/ACT-R/addition.yaml @@ -1,6 +1,6 @@ addition: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: addition_graph: nodes: diff --git a/examples/ACT-R/count.json b/examples/ACT-R/count.json index afd9323f..d96df437 100644 --- a/examples/ACT-R/count.json +++ b/examples/ACT-R/count.json @@ -1,7 +1,7 @@ { "count": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "count_graph": { "nodes": { diff --git a/examples/ACT-R/count.yaml b/examples/ACT-R/count.yaml index a3cc7efc..4ae46a62 100644 --- a/examples/ACT-R/count.yaml +++ b/examples/ACT-R/count.yaml @@ -1,6 +1,6 @@ count: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: count_graph: nodes: diff --git a/examples/MDF/ABCD.json b/examples/MDF/ABCD.json index 38820277..04d0f4fe 100644 --- a/examples/MDF/ABCD.json +++ b/examples/MDF/ABCD.json @@ -1,7 +1,7 @@ { "ABCD": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "abcd_example": { "nodes": { diff --git a/examples/MDF/ABCD.yaml b/examples/MDF/ABCD.yaml index 0257aa20..d4b4d0e5 100644 --- a/examples/MDF/ABCD.yaml +++ b/examples/MDF/ABCD.yaml @@ -1,6 +1,6 @@ ABCD: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: abcd_example: nodes: diff --git a/examples/MDF/Arrays.json b/examples/MDF/Arrays.json index 48c1811d..7fe2245c 100644 --- a/examples/MDF/Arrays.json +++ b/examples/MDF/Arrays.json @@ -1,7 +1,7 @@ { "Arrays": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "array_example": { "nodes": { diff --git a/examples/MDF/Arrays.yaml b/examples/MDF/Arrays.yaml index 91825e3d..5eff7bb7 100644 --- a/examples/MDF/Arrays.yaml +++ b/examples/MDF/Arrays.yaml @@ -1,6 +1,6 @@ Arrays: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: array_example: nodes: diff --git a/examples/MDF/ParametersFunctions.json b/examples/MDF/ParametersFunctions.json index ab71e90e..61a39dc9 100644 --- a/examples/MDF/ParametersFunctions.json +++ b/examples/MDF/ParametersFunctions.json @@ -1,7 +1,7 @@ { "ParametersFunctions": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "params_funcs_example": { "nodes": { diff --git a/examples/MDF/ParametersFunctions.yaml b/examples/MDF/ParametersFunctions.yaml index e13fe81d..48f25b07 100644 --- a/examples/MDF/ParametersFunctions.yaml +++ b/examples/MDF/ParametersFunctions.yaml @@ -1,6 +1,6 @@ ParametersFunctions: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: params_funcs_example: nodes: diff --git a/examples/MDF/RNN/IAFs.json b/examples/MDF/RNN/IAFs.json index ae0576c5..70f8ea5d 100644 --- a/examples/MDF/RNN/IAFs.json +++ b/examples/MDF/RNN/IAFs.json @@ -1,7 +1,7 @@ { "IAFs": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "iaf_example": { "nodes": { diff --git a/examples/MDF/RNN/IAFs.yaml b/examples/MDF/RNN/IAFs.yaml index 678f3ee0..32d3851a 100644 --- a/examples/MDF/RNN/IAFs.yaml +++ b/examples/MDF/RNN/IAFs.yaml @@ -1,6 +1,6 @@ IAFs: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: iaf_example: nodes: diff --git a/examples/MDF/RNN/RNNs.json b/examples/MDF/RNN/RNNs.json index b9fe8499..d26d535e 100644 --- a/examples/MDF/RNN/RNNs.json +++ b/examples/MDF/RNN/RNNs.json @@ -1,7 +1,7 @@ { "RNNs": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "rnn_example": { "nodes": { diff --git a/examples/MDF/RNN/RNNs.yaml b/examples/MDF/RNN/RNNs.yaml index 5284b60e..aab6e8da 100644 --- a/examples/MDF/RNN/RNNs.yaml +++ b/examples/MDF/RNN/RNNs.yaml @@ -1,6 +1,6 @@ RNNs: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: rnn_example: nodes: diff --git a/examples/MDF/Simple.json b/examples/MDF/Simple.json index dac7966d..2c53d397 100644 --- a/examples/MDF/Simple.json +++ b/examples/MDF/Simple.json @@ -1,7 +1,7 @@ { "Simple": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "simple_example": { "nodes": { diff --git a/examples/MDF/Simple.yaml b/examples/MDF/Simple.yaml index 26b39959..5b39c99c 100644 --- a/examples/MDF/Simple.yaml +++ b/examples/MDF/Simple.yaml @@ -1,6 +1,6 @@ Simple: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: simple_example: nodes: diff --git a/examples/MDF/States.json b/examples/MDF/States.json index c8ed77f6..a523cb00 100644 --- a/examples/MDF/States.json +++ b/examples/MDF/States.json @@ -1,7 +1,7 @@ { "States": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "state_example": { "nodes": { diff --git a/examples/MDF/States.yaml b/examples/MDF/States.yaml index 50117508..0de5aa0d 100644 --- a/examples/MDF/States.yaml +++ b/examples/MDF/States.yaml @@ -1,6 +1,6 @@ States: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: state_example: nodes: diff --git a/examples/MDF/abc_conditions.json b/examples/MDF/abc_conditions.json index 941ea68f..75bf49ae 100644 --- a/examples/MDF/abc_conditions.json +++ b/examples/MDF/abc_conditions.json @@ -1,7 +1,7 @@ { "abc_conditions": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "abc_conditions_example": { "nodes": { diff --git a/examples/MDF/abc_conditions.yaml b/examples/MDF/abc_conditions.yaml index d141725d..dbb046d7 100644 --- a/examples/MDF/abc_conditions.yaml +++ b/examples/MDF/abc_conditions.yaml @@ -1,6 +1,6 @@ abc_conditions: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: abc_conditions_example: nodes: diff --git a/examples/ONNX/ab.json b/examples/ONNX/ab.json index fa5f29c6..bbc408d7 100644 --- a/examples/ONNX/ab.json +++ b/examples/ONNX/ab.json @@ -1,7 +1,7 @@ { "ONNX Model": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "torch-jit-export": { "nodes": { diff --git a/examples/ONNX/ab.yaml b/examples/ONNX/ab.yaml index 78e5d08c..df743804 100644 --- a/examples/ONNX/ab.yaml +++ b/examples/ONNX/ab.yaml @@ -1,6 +1,6 @@ ONNX Model: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: torch-jit-export: nodes: diff --git a/examples/ONNX/abc.json b/examples/ONNX/abc.json index 055240bf..962318d6 100644 --- a/examples/ONNX/abc.json +++ b/examples/ONNX/abc.json @@ -1,7 +1,7 @@ { "ONNX Model": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "torch-jit-export": { "nodes": { diff --git a/examples/ONNX/abc.yaml b/examples/ONNX/abc.yaml index 64e82a19..de0934ec 100644 --- a/examples/ONNX/abc.yaml +++ b/examples/ONNX/abc.yaml @@ -1,6 +1,6 @@ ONNX Model: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: torch-jit-export: nodes: diff --git a/examples/ONNX/abcd.json b/examples/ONNX/abcd.json index bfa2b1bc..87f41060 100644 --- a/examples/ONNX/abcd.json +++ b/examples/ONNX/abcd.json @@ -1,7 +1,7 @@ { "ONNX Model": { "format": "ModECI MDF v0.4", - "generating_application": "Python modeci-mdf v0.4.2", + "generating_application": "Python modeci-mdf v0.4.3", "graphs": { "torch-jit-export": { "nodes": { diff --git a/examples/ONNX/abcd.yaml b/examples/ONNX/abcd.yaml index 6478e8e5..35b7908b 100644 --- a/examples/ONNX/abcd.yaml +++ b/examples/ONNX/abcd.yaml @@ -1,6 +1,6 @@ ONNX Model: format: ModECI MDF v0.4 - generating_application: Python modeci-mdf v0.4.2 + generating_application: Python modeci-mdf v0.4.3 graphs: torch-jit-export: nodes: diff --git a/setup.cfg b/setup.cfg index 6e6208be..d25eae30 100644 --- a/setup.cfg +++ b/setup.cfg @@ -40,9 +40,8 @@ install_requires = matplotlib graphviz h5py - onnx - onnxruntime - skl2onnx + onnxruntime>=1.12.0 + skl2onnx>=1.13 attrs>=21.1.0 cattrs modelspec<0.3,>=0.2.6 diff --git a/src/modeci_mdf/__init__.py b/src/modeci_mdf/__init__.py index 47cd7158..92857f0e 100644 --- a/src/modeci_mdf/__init__.py +++ b/src/modeci_mdf/__init__.py @@ -13,4 +13,4 @@ MODECI_MDF_VERSION = "0.4" # Version of the Python module. -__version__ = "0.4.2" +__version__ = "0.4.3"