本文整理汇总了Python中Engine.Engine.get_train_start_epoch_batch方法的典型用法代码示例。如果您正苦于以下问题:Python Engine.get_train_start_epoch_batch方法的具体用法?Python Engine.get_train_start_epoch_batch怎么用?Python Engine.get_train_start_epoch_batch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Engine.Engine
的用法示例。
在下文中一共展示了Engine.get_train_start_epoch_batch方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: iterateEpochs
# 需要导入模块: from Engine import Engine [as 别名]
# 或者: from Engine.Engine import get_train_start_epoch_batch [as 别名]
def iterateEpochs():
start_epoch, start_batch = Engine.get_train_start_epoch_batch(config)
final_epoch = Engine.config_get_final_epoch(config)
print("Starting with epoch %i, batch %i." % (start_epoch, start_batch), file=log.v3)
print("Final epoch is: %i" % final_epoch, file=log.v3)
recurrent_net = "lstm" in config.value("hidden_type", "") # good enough...
batch_size = config.int('batch_size', 1)
max_seqs = config.int('max_seqs', -1)
for epoch in range(start_epoch, final_epoch + 1):
print("Epoch %i." % epoch, file=log.v3)
rnn.train_data.init_seq_order(epoch)
iterateDataset(rnn.train_data, recurrent_net=recurrent_net, batch_size=batch_size, max_seqs=max_seqs)
print("Finished all epochs.", file=log.v3)
示例2: getSegmentList
# 需要导入模块: from Engine import Engine [as 别名]
# 或者: from Engine.Engine import get_train_start_epoch_batch [as 别名]
def getSegmentList(corpusName, segmentList, **kwargs):
"""
Called by Sprint PythonSegmentOrder.
Set python-segment-order = true in Sprint to use this.
If this is used, this gets called really early.
If it is used together with the Sprint PythonTrainer,
it will get called way earlier before the init() below.
It might also get called multiple times, e.g. if
Sprint is in interactive mode to calc the seg count.
This is optional. You can use the SprintInterface
only for the PythonTrainer.
:type corpusName: str
:type segmentList: list[str]
:type segmentsInfo: dict[str,dict[str]]
:rtype: list[str]
:returns segment list. Can also be an iterator.
"""
print("Sprint: getSegmentList(%r)" % corpusName)
print("Corpus segments #: %i" % len(segmentList))
print("(This can be further filtered in Sprint by a whitelist or so.)")
# Init what we need. These can be called multiple times.
# If we use both the PythonSegmentOrder and the PythonTrainer, this will be called first.
# The PythonTrainer will be called lazily once it gets the first data.
initBase()
sprintDataset.useMultipleEpochs()
finalEpoch = getFinalEpoch()
startEpoch, startSegmentIdx = Engine.get_train_start_epoch_batch(config)
print("Sprint: Starting with epoch %i, segment-idx %s." % (startEpoch, startSegmentIdx))
print("Final epoch is: %i" % finalEpoch)
# Loop over multiple epochs. Epochs start at 1.
for curEpoch in range(startEpoch, finalEpoch + 1):
if isTrainThreadStarted:
# So that the CRNN train thread always has the SprintDataset in a sane state before we reset it.
sprintDataset.waitForCrnnEpoch(curEpoch)
sprintDataset.initSprintEpoch(curEpoch)
index_list = sprintDataset.get_seq_order_for_epoch(curEpoch, len(segmentList))
orderedSegmentList = [segmentList[i] for i in index_list]
assert len(orderedSegmentList) == len(segmentList)
print("Sprint epoch: %i" % curEpoch)
startSegmentIdx = 0
if curEpoch == startEpoch: startSegmentIdx = startSegmentIdx
for curSegmentIdx in range(startSegmentIdx, len(orderedSegmentList)):
sprintDataset.set_complete_frac(float(curSegmentIdx - startSegmentIdx + 1) /
(len(orderedSegmentList) - startSegmentIdx))
yield orderedSegmentList[curSegmentIdx]
print("Sprint finished epoch %i" % curEpoch)
sprintDataset.finishSprintEpoch()
if isTrainThreadStarted:
assert sprintDataset.get_num_timesteps() > 0, \
"We did not received any seqs. You are probably using a buffered feature extractor and the buffer is " + \
"bigger than the total number of time frames in the corpus."
sprintDataset.finalizeSprint()