Fix parsing of percentage numbers in test output

This commit is contained in:
Willi Richert 2016-06-10 10:35:35 +02:00
Родитель db0686110d
Коммит a261c753ba
2 изменённых файлов: 19 добавлений и 2 удалений

Просмотреть файл

@ -600,7 +600,13 @@ class LocalExecutionContext(AbstractContext):
if '*' in v:
v = v.split('*')[0].strip()
result[k.strip()] = float(v)
if v[-1] == '%':
# In some cases, CNTK outputs data in percentage
v = float(v[:-1])/100
else:
v = float(v)
result[k.strip()] = v
return result

Просмотреть файл

@ -99,7 +99,7 @@ def test_parse_eval_result_output_2():
assert np.isinf(data[7]) and data[7] < 0
def test_parse_test_result_output():
def test_parse_test_result_output_1():
output = '''\
Final Results: Minibatch[1-1]: eval_node = 2.77790430 * 500; crit_node = 0.44370050 * 500; perplexity = 1.55846366
'''
@ -110,6 +110,17 @@ Final Results: Minibatch[1-1]: eval_node = 2.77790430 * 500; crit_node = 0.44370
assert result['crit_node'] == 0.44370050
assert len(result) == 3
def test_parse_test_result_output_2():
output = '''\
Final Results: Minibatch[1-1]: loss = 47.3% * 500; crit_node = 0.44370050 * 500; perplexity = 1.55846366
'''
result = LocalExecutionContext._parse_test_result(output)
assert result['perplexity'] == 1.55846366
assert result['loss'] == 0.473
assert result['crit_node'] == 0.44370050
assert len(result) == 3
def test_export_deferred_context():
X = Input(2)
reader = CNTKTextFormatReader("Data.txt")