首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >()方法跳过源文件的特定行?

()方法跳过源文件的特定行?
EN

Stack Overflow用户
提问于 2020-06-25 06:51:52
回答 1查看 65关注 0票数 0

对于我正在进行的图像分类项目,我生成了一个作为文本文件的报告。在每一次训练验证运行中,应用程序都会将一个标题写入报表文件,每一行将总结使用的模型的一个层,最后是一个结果行,它说明了该模型的准确性、损失以及花费了多少时间。下面是对报告文件的描述:

代码语言:javascript
复制
>>>test 1<<<
input   convolution channels: 8 activation: relu    l1 regularization: 0.0
hidden  maxpool pool size: 2
hidden  convolution channels: 64    activation: relu    l1 regularization: 0.0
hidden  maxpool pool size: 2
hidden  convolution channels: 64    activation: relu    l1 regularization: 0.0
hidden  flatten 
hidden  dense   neurons: 64 activation: relu    l1 regularization: 0.0
output  dense   neurons: 10 activation: softmax l1 regularization: 0.0
Best validation at epoch 10 with loss 0.65450 and  accuracy 0.96423

>>>test 2<<<
input   convolution channels: 16    activation: relu    l1 regularization: 0.0
hidden  maxpool pool size: 2
hidden  convolution channels: 64    activation: relu    l1 regularization: 0.0
hidden  maxpool pool size: 2
hidden  convolution channels: 64    activation: relu    l1 regularization: 0.0
hidden  flatten 
hidden  dense   neurons: 64 activation: relu    l1 regularization: 0.0
output  dense   neurons: 10 activation: softmax l1 regularization: 0.0
Best validation at epoch 12 with loss 0.47489 and  accuracy 0.97593

现在,我需要查看该报告文件,并找到给我提供最佳结果的测试模型,因此我创建了一个函数,使用readline()导航到我所寻求的信息行(“.最佳验证at .”在前面的报告描述中)。我希望恢复这一行并在其上使用str.split()可以让我获得嵌入在这些结果行中的数据,但是运行失败了,因为我找到的不是要找的行,而是后面的行。看到没有理由在代码中跳过这一行,我只打印了22行readline().split(),看看我会得到什么(22行,因为这足够文件中的前2条reports语句)。下面是我运行的调试代码:

代码语言:javascript
复制
ioData = open(REPORT_FILE, 'r')
for i in range(22):
   print("{}".format(ioData.readline().split()))
ioData.close()

我从中得到的输出:

代码语言:javascript
复制
['>>>test', '1<<<']
['input', 'convolution', 'channels:', '8', 'activation:', 'relu', 'l1', 'regularization:', '0.0']
['hidden', 'maxpool', 'pool', 'size:', '2']
['hidden', 'convolution', 'channels:', '64', 'activation:', 'relu', 'l1', 'regularization:', '0.0']
['hidden', 'maxpool', 'pool', 'size:', '2']
['hidden', 'convolution', 'channels:', '64', 'activation:', 'relu', 'l1', 'regularization:', '0.0']
['hidden', 'flatten']
['hidden', 'dense', 'neurons:', '64', 'activation:', 'relu', 'l1', 'regularization:', '0.0']
['output', 'dense', 'neurons:', '10', 'activation:', 'softmax', 'l1', 'regularization:', '0.0']
[]
['>>>test', '2<<<']
['input', 'convolution', 'channels:', '16', 'activation:', 'relu', 'l1', 'regularization:', '0.0']
['hidden', 'maxpool', 'pool', 'size:', '2']
['hidden', 'convolution', 'channels:', '64', 'activation:', 'relu', 'l1', 'regularization:', '0.0']
['hidden', 'maxpool', 'pool', 'size:', '2']
['hidden', 'convolution', 'channels:', '64', 'activation:', 'relu', 'l1', 'regularization:', '0.0']
['hidden', 'flatten']
['hidden', 'dense', 'neurons:', '64', 'activation:', 'relu', 'l1', 'regularization:', '0.0']
['output', 'dense', 'neurons:', '10', 'activation:', 'softmax', 'l1', 'regularization:', '0.0']
[]
['>>>test', '3<<<']
['input', 'convolution', 'channels:', '32', 'activation:', 'relu', 'l1', 'regularization:', '0.0']

如您所见,printout以正确的顺序显示word列表中的每一行拆分,但它跳过结果行(每个报表语句的最后一行)。因此,我没有只获得22行的两个report语句,而是使用了第三个report语句的前两行。

我没有看到任何错误可以解释为什么每次跳过特定的行。有谁可以帮我?

EN

回答 1

Stack Overflow用户

发布于 2020-06-25 18:14:13

哦,我刚想明白。我有一个相同名称的重复文件(必须在调试报表模块时生成该文件),该文件与我的报告完全相同,其中缺少测试结果行的差异。这段时间,我用结果来索引文件而不是文件。

抱歉浪费你的时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62569467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档