/// <summary>
        /// Generates the Tensor inputs that are expected to be present in the Model.
        /// </summary>
        /// <param name="model">
        /// The Barracuda engine model for loading static parameters.
        /// </param>
        /// <returns>TensorProxy IEnumerable with the expected Tensor inputs.</returns>
        public static IReadOnlyList <TensorProxy> GetInputTensors(Model model)
        {
            var tensors = new List <TensorProxy>();

            if (model == null)
            {
                return(tensors);
            }

            foreach (var input in model.inputs)
            {
                tensors.Add(new TensorProxy
                {
                    name      = input.name,
                    valueType = TensorProxy.TensorType.FloatingPoint,
                    data      = null,
                    shape     = input.shape.Select(i => (long)i).ToArray()
                });
            }

            foreach (var mem in model.memories)
            {
                tensors.Add(new TensorProxy
                {
                    name      = mem.input,
                    valueType = TensorProxy.TensorType.FloatingPoint,
                    data      = null,
                    shape     = TensorUtils.TensorShapeFromBarracuda(mem.shape)
                });
            }

            tensors.Sort((el1, el2) => el1.name.CompareTo(el2.name));

            return(tensors);
        }
Пример #2
0
        /// <summary>
        /// Generates the Tensor inputs that are expected to be present in the Model.
        /// </summary>
        /// <returns>TensorProxy IEnumerable with the expected Tensor inputs</returns>
        public IReadOnlyList <TensorProxy> GetInputTensors()
        {
            List <TensorProxy> tensors = new List <TensorProxy>();

            if (_model == null)
            {
                return(tensors);
            }

            foreach (var input in _model.inputs)
            {
                tensors.Add(new TensorProxy
                {
                    Name      = input.name,
                    ValueType = TensorProxy.TensorType.FloatingPoint,
                    Data      = null,
                    Shape     = input.shape.Select(i => (long)i).ToArray()
                });
            }

            foreach (var mem in _model.memories)
            {
                //Debug.Log($"{mem.input}: {mem.shape} -> {BarracudaUtils.TensorShapeFromBarracuda(mem.shape).Length}");
                tensors.Add(new TensorProxy
                {
                    Name      = mem.input,
                    ValueType = TensorProxy.TensorType.FloatingPoint,
                    Data      = null,
                    Shape     = TensorUtils.TensorShapeFromBarracuda(mem.shape)
                });
            }

            tensors.Sort((el1, el2) => el1.Name.CompareTo(el2.Name));

            return(tensors);
        }