我遵循了T2T变压器“训练语言模型”的示例,该示例进行了10个培训步骤。但是,当扩展到25万步时,出现OutOfRange错误(如下)。这是解析问题还是其他问题?
<div class="switch-button-container two-items">
<label class="switch-btn" v-for="o in data.formsData.departments"> <-- Data from json
<input type="radio"
v-model="formData.Department" <-- property and value added on fly
name="departments"
:value="o.value"
:checked="formData.Department === 'Rent'">
<span class="custom-radio">{{o.value}}</span>
</label>
</div>
答案 0 :(得分:0)
我假设您已按照此document中的说明进行操作。 输出中的相关错误是“序列结束”上“ OutOfRangeError”的行。此错误是输入管道用于使上游知道没有更多数据要处理的信号。
您需要通过确保以下内容来确保有供TPU处理的数据: TPU可以访问训练数据(例如GCS存储桶) 命令的路径中没有错字,最重要的是, 您的数据集很大,或者您有一个dataset.repeat(),以确保您的训练数据不会在您的TPU完成配置的训练步骤数之前用完。
答案 1 :(得分:0)
Tensor2Tensor库的一位作者。
简短答案:减少--eval_steps
。
长答案:
不幸的是,TPUEstimator
(我们在幕后用来在TPU上运行的库)在输入数据用完时无法捕获OutOfRangeError
。在训练期间,这不是问题,因为输入数据是无限的(我们在输入tf.data.Dataset
上称为重复)。但是,在评估过程中,您希望对数据进行1次传递,这意味着您需要正确设置--eval_steps
,以免耗尽输入数据。希望TPUEstimator
会尽快处理该错误,以便您不必弄清楚必须运行多少个评估步骤。