Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DARTS Suggestion #1175

Merged

Conversation

andreyvelich
Copy link
Member

Part of #1167.

This is Suggestion and Training Container for DARTS.

To support DARTS with current Katib implementation workflow looks like this:

  1. Suggestion sends Search Space (Primitives) and Algorithm Settings (Epoch, etc.) to the training container.
  2. Training container runs DARTS algorithm and creates Best Genotype with neural network architecture after training.

Currently, it supports only one GPU
Running on Tesla T4 GPU for 3 Epoch, 3 NN layers and 4 DARTS nodes takes 21 minutes.

In this PR, you can see example that I ran.

Unfortunately, Katib controller doesn't support String Objective Metric Value: https://github.com/kubeflow/katib/blob/master/pkg/controller.v1alpha3/trial/trial_controller_util.go#L180, but in MySQL DB we can see reported Genotype with the best architecture.

Do we want to support string objective metric value in the future, what do you think @gaocegege @johnugeorge ? Will it be useful for the Katib user?

This is example of Best Genotype that currently saves in DB:

Genotype(
normal=[
[('max_pooling_3x3', 0), ('max_pooling_3x3', 1)],
[('max_pooling_3x3', 0), ('max_pooling_3x3', 1)],
[('max_pooling_3x3', 0), ('max_pooling_3x3', 1)],
[('max_pooling_3x3', 0), ('max_pooling_3x3', 1)]
],
normal_concat=range(2, 6),
reduce=[
[('dilated_convolution_5x5', 1), ('separable_convolution_3x3', 0)],
[('dilated_convolution_5x5', 2), ('dilated_convolution_5x5', 1)],
[('dilated_convolution_5x5', 3), ('dilated_convolution_5x5', 2)],
[('dilated_convolution_5x5', 3), ('dilated_convolution_5x5', 4)]
],
reduce_concat=range(2, 6)
)

We can think about better representation later.

It supports only unrolled model, according the paper it produces better results.

I will update an issue with remained work.

/assign @johnugeorge @gaocegege

@kubeflow-bot
Copy link

This change is Reviewable

@gaocegege
Copy link
Member

I think we can support the string metrics.

/lgtm

Thanks for your contribution! 🎉 👍

@gaocegege
Copy link
Member

/approve

@k8s-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: gaocegege

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot merged commit c23f9c6 into kubeflow:master May 6, 2020
sperlingxx pushed a commit to sperlingxx/katib that referenced this pull request Jul 9, 2020
* First commit with darts

* Support darts in Katib

* Fix problems

* Modify darts example

* Change num nodes to 4
@andreyvelich andreyvelich deleted the issue-1167-darts-suggestion branch October 6, 2021 00:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants