Beispiel #1
0
        public GraphDef ToGraphDef()
        {
            TF_Buffer b      = this.ToGraphDefBuffer();
            var       stream = CodedInputStream.CreateWithLimits((UnmanagedMemoryStream)b, 256 * 1024 * 1024, 100);
            var       def    = GraphDef.Parser.ParseFrom(stream);

            b.Delete();
            return(def);
        }
        public TF_Status Run(TF_Output[] inputs, TF_Tensor[] inputValues, TF_Output[] outputs, TF_Tensor[] outputValues, TF_Operation[] targets = null, TF_Buffer runMetadata = null, TF_Buffer runOptions = null)
        {
            var status        = tf_status.TF_NewStatus();
            var _inputs       = inputs.Select(i => i.__Instance).ToArray();
            var _inputValues  = inputValues.Select(i => i.__Instance).ToArray();
            var _outputs      = outputs.Select(i => i.__Instance).ToArray();
            var _outputValues = outputValues.Select(i => i.__Instance).ToArray();
            var _targets      = targets?.Select(i => i.__Instance).ToArray();

            var ro = new Buffer(new byte[0]);

            fixed(IntPtr *_i = _inputs)
            fixed(IntPtr * _iv = _inputValues)
            fixed(IntPtr * _o  = _outputs)
            fixed(IntPtr * _ov = _outputValues)
            fixed(IntPtr * _t  = _targets)
            {
                TF_SessionRun2(
                    this.__Instance,
                    IntPtr.Zero,
                    inputs[0].__Instance,
                    inputValues[0].__Instance,
                    0,
                    outputs[0].__Instance,
                    outputValues[0].__Instance,                    //outputValues[0].__Instance,
                    0,
                    targets[0].__Instance,
                    1,
                    IntPtr.Zero,
                    status.__Instance
                    );
            }
            //c_api.TF_SessionRun
            //TF_SessionRun2(this, null, inputs, inputValues, inputs.Length, outputs, outputValues, outputs.Length, null, 0, null, status);
            var msg = tf_status.TF_Message(status);

            return(status);
        }