I started working with kubeflow and created a first, little pipeline. Unfortunately it doesn't work, so when I try to create a run with my pipeline nothing happens. Neither it creates a Kubernetes pod nor does the status of the run change (it keeps saying "Unknown status"). I also cant see the belonging graph or run output.
The code of my pipeline looks like this:
import kfp
from kfp import components
from kfp import dsl
from kfp import onprem
import sys
def train_op(
epochs,
validations,
workers,
trainset,
input,
filenames,
target,
train_size,
learn_rate,
):
return dsl.ContainerOp(
name='Train',
image='pascalschroeder/ml-train-test',
arguments=[
'--epochs', epochs,
'--validations', validations,
'--workers', workers,
'--trainset', trainset,
'--input', input,
'--filenames', filenames,
'--target', target,
'--train_size', train_size,
'--learn_rate', learn_rate,
],
file_outputs={
'model': 'path/to/model',
}
)
def load_op(
workers,
testset,
input,
filenames,
target,
model,
output
):
return dsl.ContainerOp(
name='Load',
image='pascalschroeder/ml-load-test',
arguments=[
'--workers', workers,
'--testset', testset,
'--input', input,
'--filenames', filenames,
'--target', target,
'--model', model,
'--output', output,
],
file_outputs={
'result': 'path/to/result.txt',
}
)
@dsl.pipeline(
name='ML Test Pipeline',
description='Test'
)
def train_pipeline(
output,
epochs=30,
validations=10,
trainset='path/to/trainset',
testset='path/to/testset',
input='path/to/csv',
filenames='id',
target='has_scratch',
train_size=0.8,
learn_rate=0.0001,
workers=2,
):
train = train_op(epochs,
validations,
workers,
trainset,
input,
filenames,
target,
train_size,
learn_rate)
load = load_op(workers,
testset,
input,
filenames,
target,
train.outputs['model'],
output)
if __name__ == '__main__':
import kfp.compiler as compiler
compiler.Compiler().compile(train_pipeline, __file__ + '.zip')
I am working on an Ubuntu system with a MicroK8s and Kubeflow installed.
When I enter kubectl get pods --namespace=kubeflow
no new pod appears after I started running the pipeline.
In the kubeflow dashboard I can see the run in the section "All runs" but with no status (Unknown status) and no duration.
When I click on the run and go to Config I am getting these configs:
Run details
Status
Description
Created at 5/22/2019, 11:14:46 AM
Started at -
Finished at -
Duration -
Run parameters
output
epochs 30
validations 10
trainset /path/to/trainset
testset /path/to/testset
input /path/to/csv
filenames id
target has_scratch
train-size 0.8
learn-rate 0.0001
workers 2
Can some of you guys help me?
Thank you!