如何在 DVC 中启动实验?
How do launch experiments in DVC?
我想在 DVC 中进行一些实验。但是当我设置实验参数值时,DVC 删除文件 'params.yaml',并且实验没有设置在队列中。
简化代码例如:
Python 文件 'test.py':
import numpy as np
import json
import yaml
params = yaml.safe_load(open('params.yaml'))["test"]
precision = np.random.random()
recall = params['value']
accuracy = np.random.random()
rows = {'precision': precision,
'recall': recall,
'accuracy': accuracy}
with open(params['metrics_path'], 'w') as outfile:
json.dump(rows, outfile)
fpr = 10*np.random.random((1,10)).tolist()
tpr = 10*np.random.random((1,10)).tolist()
with open('plot.json', 'w') as outfile2:
json.dump(
{
"roc": [ {"fpr": f, "tpr": t} for f, t in zip(fpr, tpr) ]
},
outfile2
)
params.yaml:
test:
metrics_path: "scores.json"
value: 1
dvc.yaml:
stages:
test:
cmd: python test.py
deps:
- test.py
params:
- test.metrics_path
- test.value
metrics:
- scores.json:
cache: false
plots:
- plot.json:
cache: false
x: fpr
y: tpr
这是一种奇怪的行为。可以修复吗?
我解决了我的问题。 git 必须跟踪所有文件(可执行脚本,'dvc.yaml'、'params.yaml')。在这种情况下 dvc exp run
命令可以正常工作。
我想在 DVC 中进行一些实验。但是当我设置实验参数值时,DVC 删除文件 'params.yaml',并且实验没有设置在队列中。
简化代码例如: Python 文件 'test.py':
import numpy as np
import json
import yaml
params = yaml.safe_load(open('params.yaml'))["test"]
precision = np.random.random()
recall = params['value']
accuracy = np.random.random()
rows = {'precision': precision,
'recall': recall,
'accuracy': accuracy}
with open(params['metrics_path'], 'w') as outfile:
json.dump(rows, outfile)
fpr = 10*np.random.random((1,10)).tolist()
tpr = 10*np.random.random((1,10)).tolist()
with open('plot.json', 'w') as outfile2:
json.dump(
{
"roc": [ {"fpr": f, "tpr": t} for f, t in zip(fpr, tpr) ]
},
outfile2
)
params.yaml:
test:
metrics_path: "scores.json"
value: 1
dvc.yaml:
stages:
test:
cmd: python test.py
deps:
- test.py
params:
- test.metrics_path
- test.value
metrics:
- scores.json:
cache: false
plots:
- plot.json:
cache: false
x: fpr
y: tpr
这是一种奇怪的行为。可以修复吗?
我解决了我的问题。 git 必须跟踪所有文件(可执行脚本,'dvc.yaml'、'params.yaml')。在这种情况下 dvc exp run
命令可以正常工作。