public static CompressedObservationProto ToProto(this CompressedObservation obs) { var obsProto = new CompressedObservationProto { Data = ByteString.CopyFrom(obs.Data), CompressionType = (CompressionTypeProto)obs.CompressionType, }; obsProto.Shape.AddRange(obs.Shape); return(obsProto); }
/// <summary> /// Generate data for each sensor and store it on the Agent's AgentInfo. /// NOTE: At the moment, this is only called during training or when using a DemonstrationRecorder; /// during inference the sensors are used to write directly to the Tensor data. This will likely change in the /// future to be controlled by the type of brain being used. /// </summary> public void GenerateSensorData() { // Generate data for all sensors // TODO add bool argument indicating when to compress? For now, we always will compress. for (var i = 0; i < m_Sensors.Count; i++) { var sensor = m_Sensors[i]; var compressedObs = new CompressedObservation { Data = sensor.GetCompressedObservation(), Shape = sensor.GetFloatObservationShape(), CompressionType = sensor.GetCompressionType() }; m_Info.compressedObservations.Add(compressedObs); } }