FileLogger
描述
使用一个FileLogger
对象垫文件日志数据,在火车内部函数或一个自定义训练循环。日志数据使用火车函数时,指定适当的回调函数FileLogger
,如例子所示。这些回调函数执行在不同阶段的培训,例如,EpisodeFinishedFcn
是一个集完成后执行。一个回调函数的输出是一个结构,它包含的数据记录在那个阶段的训练。
请注意
使用一个FileLogger
当使用对象来记录数据火车
功能不影响和不受任何选项保存在训练中指定一个代理rlTrainingOptions
对象。
请注意
FileLogger
是一个处理对象。如果你指定一个现有的FileLogger
对象到一个新的FileLogger
对象,新对象和原来的一个引用相同的底层对象在内存中。保留原来的对象参数供以后使用,MAT-file保存对象。关于处理对象的更多信息,请参阅处理对象的行为。
创建
创建一个FileLogger
对象使用rlDataLogger
没有任何输入参数。
属性
LoggingOptions
- - - - - -对象包含一组日志记录选项
MATFileLoggingOptions
对象(默认)
对象包含一组日志记录选项,作为一个返回MATFileLoggingOptions
对象。一个MATFileLoggingOptions
对象具有以下属性,您可以访问创建后使用点符号FileLogger
对象。
LoggingDirectory
——日志目录的名称
“日志”
当前目录的子目录(默认)|字符串或字符数组
名称或日志目录的完全限定路径,指定为一个字符串或一个字符数组。这是垫的目录的名称包含记录数据保存的文件。缺省情况下,子目录日志
创建在当前文件夹中设置和文件保存在训练。
例子:LoggingDirectory = mylogs
FileNameRule
——规则名称垫文件
“loggedData < id >”
(默认)|字符串
|字符
数组
规则名称垫文件,指定为一个字符串或一个字符数组。例如,命名规则“集< id >”
结果在文件名称episode001.mat
,episode002.mat
等等。
例子:FileNameRule = " ThirdRun < id >”
版本
-垫文件版本
“v7”
(默认)|字符串
|字符
数组
垫文件版本,指定为一个字符串或字符数组。默认值是“v7”。有关更多信息,请参见MAT-File版本。
例子:Version = " -v7.3 "
UseCompression
——选择使用压缩
真正的
(默认)|假
选择保存数据时使用压缩垫文件,指定为一个逻辑变量。默认值是真正的
。有关更多信息,请参见MAT-File版本。
例子:UseCompression = false
DataWriteFrequency
——磁盘数据写周期
1
(默认)|正整数
磁盘数据编写期间,指定为一个正整数。它是集之后的数量数据保存到磁盘。例如,如果DataWriteFrequency
是5
然后数据集1 - 5将缓存在内存中,在5日结束写入磁盘。这在某些情况下可以提高性能。缺省值是1。
例子:DataWriteFrequency = 10
MaxEpisodes
最大数量的集
500年
(默认)|正整数
最大数量的事件中,指定为一个正整数。当使用火车
,值是自动初始化。设置这个值在使用日志记录器对象在一个定制的培训循环。默认值是500年
。
例子:MaxEpisodes = 1000
EpisodeFinishedFcn
- - - - - -回调后日志数据集完成
[]
(默认)|函数处理
回调日志数据集完成后,指定为一个函数处理对象。自动调用指定的函数的训练循环在每集的最后,而且必须返回一个包含数据记录的结构,如经验,模拟信息,或者最初的观察。
你的函数必须有以下签名。
函数dataToLog = myEpisodeFinishedFcn(数据)
在这里,数据
是一个结构,包含以下字段:
EpisodeCount
——当前的事件数量环境
——环境对象代理
——代理对象经验
——结构数组包含经验。这个数组的每个元素对应于一个步骤,是一个包含字段的结构NextObservation
,观察
,行动
,奖励
和结束
。EpisodeInfo
——包含字段的结构CumulativeReward
,StepsTaken
和InitialObservation
。SimulationInfo
从这一事件——包含模拟信息。为MATLAB环境这是一个结构SimulationError
和仿真软件金宝app®环境是一个金宝appSimulink.SimulationOutput
对象。
函数的输出dataToLog
是包含要记录到磁盘的数据结构。
例子:EpisodeFinishedFcn = @myEpLoggingFcn
AgentStepFinishedFcn
- - - - - -回调后日志数据训练步骤完成
[]
(默认)|函数处理|处理单元阵列的功能
回调后日志数据训练步骤完成一集内,指定为一个函数处理对象。自动调用指定的函数的训练循环结束时,每个训练步骤,而且必须返回一个包含数据记录的结构,如例如代理的开发政策的状态。
你的函数必须有以下签名。
函数dataToLog = myAgentStepFinishedFcn(数据)
在这里,数据
是一个结构,包含以下字段:
EpisodeCount
——当前的事件数量AgentStepCount
——累积数量的代理所采取的步骤SimulationTime
——环境中当前仿真时间代理
——代理对象
函数的输出dataToLog
是包含要记录到磁盘的数据结构。
多代理的培训,AgentStepFinishedFcn
可以是一个功能单元阵列处理尽可能多的元素数量的代理组织。
请注意
测井资料使用AgentStepFinishedFcn
不支持回调时培训代理与火车的功能金宝app。
例子:AgentStepFinishedFcn = @myAgtStepLoggingFcn
AgentLearnFinishedFcn
- - - - - -回调的日志数据完成后学习子例程
[]
(默认)|函数处理|处理单元阵列的功能
回调的日志数据完成后学习子程序,指定为一个函数处理对象。自动调用指定的函数的训练循环结束时,每个学习子例程,并且必须返回一个包含数据记录的结构,如演员的培训损失和评论家网络,或者,基于模型的代理,环境模型训练的损失。
你的函数必须有以下签名。
函数dataToLog = myAgentLearnFinishedFcn(数据)
在这里,数据
是一个结构,包含以下字段:
EpisodeCount
——当前的事件数量AgentStepCount
——累积数量的代理所采取的步骤AgentLearnCount
——累积学习代理所采取的步骤EnvModelTrainingInfo
——结构包含基于模型的代理相关领域TransitionFcnLoss
,RewardFcnLoss
和IsDoneFcnLoss
。代理
——代理对象ActorLoss
损失的演员CriticLoss
损失的评论家
函数的输出dataToLog
是包含要记录到磁盘的数据结构。
多代理的培训,AgentLearnFinishedFcn
可以是一个功能单元阵列处理尽可能多的元素数量的代理组织。
例子:AgentLearnFinishedFcn = @myAgtLearnLoggingFcn
例子
日志数据到磁盘中内置的培训
这个例子展示了如何日志数据到磁盘在使用火车
。
创建一个FileLogger
对象使用rlDataLogger
。
记录器= rlDataLogger ();
指定一个目录来保存记录数据。
logger.LoggingOptions。LoggingDirectory =“myDataLog”;
创建日志数据的回调函数(对于这个示例,请参见helper函数部分),并指定相应的回调函数的日志记录器对象。
记录器。EpisodeFinishedFcn = @myEpisodeFinishedFcn;记录器。代理StepFinishedFcn = @myAgentStepFinishedFcn; logger.AgentLearnFinishedFcn = @myAgentLearnFinishedFcn;
培训代理商,你现在可以打电话火车
,通过日志记录器
在以下命令等作为参数。
trainResult =火车(代理,env、trainOpts记录器=记录器);
培训进展时,数据将被记录到指定的目录,根据规则中指定的FileNameRule
的属性logger.LoggingOptions
。
logger.LoggingOptions.FileNameRule
ans = " loggedData < id >”
示例日志功能
集完成日志记录功能。这个函数会被自动调用训练循环在每集的最后,而且必须返回一个包含episode-related数据日志的结构,如经验,模拟信息,或者最初的观察。
函数dataToLog = myEpisodeFinishedFcn dataToLog(数据)。经验= data.Experience;结束
代理步骤完成日志功能。这个函数会被自动调用训练循环结束时,每个训练步骤,而且必须返回一个包含step-related数据日志的结构,如例如代理探索政策的国家。
函数dataToLog = myAgentStepFinishedFcn dataToLog(数据)。状态= getState (getExplorationPolicy (data.Agent));结束
学习子程序完成日志记录功能。这个函数会被自动调用训练循环结束时,每个学习子例程,并且必须返回一个包含学习相关数据记录的结构,如演员的培训损失和评论家网络,或者,基于模型的代理,环境模型训练的损失。
函数dataToLog = myAgentLearnFinishedFcn dataToLog(数据)。ActorLoss = data.ActorLoss;dataToLog。CriticLoss= data.CriticLoss;结束
为特定的函数签名函数输入结构的更多信息,见相应的属性FileLogger
。一个相关的例子,看到日志训练数据到磁盘。
自定义训练循环日志数据到磁盘
这个例子展示了如何记录数据到磁盘时培训代理使用自定义循环。
创建一个FileLogger
对象使用rlDataLogger
。
flgr = rlDataLogger ();
设置日志记录器对象。这个操作初始化对象执行安装任务,比如,例如,创建一个目录来保存数据文件。
设置(flgr);
在自定义训练循环中,您现在可以存储数据日志记录器对象内存和数据写入文件。
对于这个示例,商店随机数文件日志记录器对象,分组变量Context1
和Context2
。问题写命令时,垫文件对应一个包含这两个变量的迭代和保存中指定的名称flgr.LoggingOptions.FileNameRule
,在指定的文件夹中flgr.LoggingOptions.LoggingDirectory
。
为iter = 1:10%三个随机数字存储在内存中%的元素变量“Context1”为ct = 1:3商店(flgr“Context1”兰德,iter);结束%在内存中存储一个随机数%的变量“Context2”存储(flgr,“Context2”兰德,iter);每4迭代%写入数据文件如果国防部(iter 4) = = 0写(flgr);结束结束
清理日志记录器对象。这个操作执行清理任务比如文件写入任何数据仍然在内存中。
清理(flgr);
限制
测井资料使用
AgentStepFinishedFcn
不支持回调时培训代理与火车的功能金宝app。
版本历史
介绍了R2022b
另请参阅
功能
对象
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。