Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
nni
Commits
aa316742
Unverified
Commit
aa316742
authored
Feb 21, 2020
by
SparkSnail
Committed by
GitHub
Feb 21, 2020
Browse files
Merge pull request #233 from microsoft/master
merge master
parents
3fe117f0
24fa4619
Changes
285
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
11119 additions
and
9324 deletions
+11119
-9324
src/webui/src/static/style/overviewTitle.scss
src/webui/src/static/style/overviewTitle.scss
+8
-7
src/webui/src/static/style/para.scss
src/webui/src/static/style/para.scss
+19
-5
src/webui/src/static/style/probar.scss
src/webui/src/static/style/probar.scss
+4
-19
src/webui/src/static/style/progress.scss
src/webui/src/static/style/progress.scss
+86
-82
src/webui/src/static/style/search.scss
src/webui/src/static/style/search.scss
+15
-52
src/webui/src/static/style/slideBar.scss
src/webui/src/static/style/slideBar.scss
+0
-238
src/webui/src/static/style/succTable.scss
src/webui/src/static/style/succTable.scss
+4
-0
src/webui/src/static/style/table.scss
src/webui/src/static/style/table.scss
+18
-117
src/webui/src/static/style/trialsDetail.scss
src/webui/src/static/style/trialsDetail.scss
+76
-40
src/webui/tsconfig.json
src/webui/tsconfig.json
+17
-17
src/webui/tsconfig.prod.json
src/webui/tsconfig.prod.json
+0
-3
src/webui/tsconfig.test.json
src/webui/tsconfig.test.json
+0
-6
src/webui/yarn.lock
src/webui/yarn.lock
+10786
-8729
test/config_test.py
test/config_test.py
+7
-1
test/config_test/examples/cifar10-pytorch.test.yml
test/config_test/examples/cifar10-pytorch.test.yml
+1
-1
test/generate_ts_config.py
test/generate_ts_config.py
+17
-2
test/metrics_test.py
test/metrics_test.py
+2
-2
test/pipelines-it-frameworkcontroller.yml
test/pipelines-it-frameworkcontroller.yml
+55
-0
test/pipelines-it-local-windows.yml
test/pipelines-it-local-windows.yml
+3
-3
test/pipelines-it-local.yml
test/pipelines-it-local.yml
+1
-0
No files found.
src/webui/src/static/style/overviewTitle.scss
View file @
aa316742
$titleBgcolor
:
#b3b3b3
;
$iconPaddingVal
:
14px
;
.overview
.overviewBoder
{
height
:
100%
;
border-right
:
2px
solid
white
;
...
...
@@ -8,12 +10,15 @@ $titleBgcolor: #b3b3b3;
font-family
:
'Segoe UI'
,
Tahoma
,
Geneva
,
Verdana
,
sans-serif
;
width
:
100%
;
height
:
38px
;
padding
:
0
$iconPaddingVal
;
background
:
$titleBgcolor
;
img
{
height
:
22px
;
margin-top
:
-8px
;
padding-left
:
14px
;
/* (38 - 22 ) / 2 */
margin-top
:
8px
;
/* icon right */
padding
:
0
$iconPaddingVal
0
0
;
}
span
{
...
...
@@ -21,15 +26,11 @@ $titleBgcolor: #b3b3b3;
font-weight
:
600
;
color
:
#333
;
line-height
:
38px
;
margin-left
:
14px
;
}
i
{
font-size
:
24px
;
margin-left
:
14px
;
color
:
#545454
;
position
:
relative
;
top
:
2px
;
}
}
...
...
@@ -46,11 +47,11 @@ $titleBgcolor: #b3b3b3;
}
.title
{
width
:
135px
;
border-left
:
2px
solid
#fff
;
}
.minTitle
{
margin-right
:
$iconPaddingVal
;
border-right
:
2px
solid
#fff
;
}
...
...
src/webui/src/static/style/para.scss
View file @
aa316742
.parameter
{
height
:
100%
;
}
.para-filter
{
width
:
97%
;
margin-top
:
15px
;
&
-text
{
line-height
:
32px
;
margin-right
:
10px
;
}
&
-percent
{
margin-right
:
10px
;
}
}
.meline
{
margin-top
:
15px
;
...
...
@@ -27,16 +40,14 @@
/* Intermediate Result Style */
.intermediate
{
width
:
90%
;
text-align
:
right
;
width
:
95%
;
/* border: 1px solid blue; */
input
{
width
:
64px
;
height
:
3
2px
;
height
:
2
6
px
;
padding-left
:
8px
;
}
.strange
{
margin-top
:
2px
;
margin-right
:
15px
;
}
.hyphen
{
...
...
@@ -46,4 +57,7 @@
.filter-x
{
margin-left
:
15px
;
}
.filter-toggle
{
line-height
:
32px
;
}
}
src/webui/src/static/style/probar.scss
View file @
aa316742
...
...
@@ -4,37 +4,22 @@
.RUNNING
,
.STOPPING
,
.INITIALIZED
,
.NO_MORE_TRIAL
,
.TUNER_NO_MORE_TRIAL
{
/* specific status color */
color
:
#0071bc
;
.ant-progress-bg
{
/* progress- duration & trial numbers span */
.ms-ProgressIndicator-progressBar
{
background-color
:
#0071bc
;
}
.ant-progress-text
{
color
:
#0071bc
;
}
}
.DONE
,
.STOPPED
{
color
:
#009245
;
.
ant
-progress
-bg
{
.
ms-ProgressIndicator
-progress
Bar
{
background-color
:
#009245
;
}
.ant-progress-text
{
color
:
#009245
;
}
}
.ERROR
{
color
:
#eb0716
;
.
ant
-progress
-bg
{
.
ms-ProgressIndicator
-progress
Bar
{
background-color
:
#eb0716
;
}
.ant-progress-text
{
color
:
#eb0716
;
}
}
.ant-progress-bg
{
border-radius
:
0
!
important
;
}
.ant-progress-status-success
.ant-progress-bg
{
border-radius
:
0
12px
12px
0
!
important
;
}
}
...
...
src/webui/src/static/style/progress.scss
View file @
aa316742
.progress
{
.progress
{
margin
:
15px
17px
;
.status
{
.status
{
color
:
#0573bc
;
font-size
:
20px
;
font-weight
:
600
;
margin-top
:
5px
;
.status-text
{
display
:
inline-block
;
line-height
:
30px
;
}
}
.probar
{
width
:
95
%
;
.probar
{
width
:
100
%
;
height
:
34px
;
margin-top
:
15px
;
.
ant-p
rogress
-inner
{
border
:
2px
solid
#e6e6e6
;
border-radius
:
0
12px
12px
0
!
important
;
.
showP
rogress
{
width
:
300px
;
height
:
30px
;
}
.name
{
height
:
34px
;
.name
{
width
:
178px
;
box-sizing
:
border-box
;
line-height
:
30px
;
text-align
:
center
;
color
:
#fff
;
...
...
@@ -28,72 +33,71 @@
border-bottom-left-radius
:
12px
;
}
.showProgress
{
height
:
30px
;
}
.description
{
.boundary
{
width
:
100%
;
line-height
:
24px
;
font-size
:
12px
;
color
:
#212121
;
.right
{
.right
{
text-align
:
right
;
}
}
.description
{
line-height
:
34px
;
margin-left
:
6px
;
}
}
}
/* basic experiment message style */
.basic
{
.basic
{
line-height
:
24px
;
font-family
:
'
Segoe UI
'
,
Tahoma
,
Geneva
,
Verdana
,
sans-serif
;
p
{
font-family
:
"
Segoe UI
"
,
Tahoma
,
Geneva
,
Verdana
,
sans-serif
;
p
{
font-size
:
14px
;
color
:
#212121
;
}
div
{
div
{
font-size
:
16px
;
color
:
#0573bc
;
}
}
.colorOfbasic
{
div
{
.colorOfbasic
{
div
{
color
:
#0573bc
;
}
.time
{
.time
{
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
}
.mess
{
.mess
{
margin
:
10px
0
;
}
/*
.ant-tooltip-inner{
min-width: 300px;
}
*/
.inputBox
{
height
:
26px
;
.inputBox
{
height
:
32px
;
margin-top
:
5px
;
.concurrencyInput
{
width
:
25%
;
height
:
26px
;
.concurrencyInput
{
width
:
40px
;
padding-left
:
8px
;
outline
:
none
;
border
:
1px
solid
#ccc
;
}
.editStyle
{
height
:
26px
;
padding
:
0
9px
;
}
}
.lineBasic
{
.lineBasic
{
padding-bottom
:
14px
;
border-bottom
:
1px
solid
#ccc
;
}
/* office-fabric-ui progressIndicator*/
.ms-ProgressIndicator-itemProgress
{
padding
:
0
;
border
:
2px
solid
#e6e6e6
;
border-radius
:
0
12px
12px
0
!
important
;
}
src/webui/src/static/style/search.scss
View file @
aa316742
...
...
@@ -2,72 +2,35 @@
.allList
{
width
:
96%
;
margin
:
0
auto
;
.right
{
text-align
:
right
;
.common
{
border-radius
:
0
;
}
.common
:hover
{
color
:
#0071BC
;
border-radius
:
0
;
}
.filter
{
width
:
100px
;
margin-left
:
8px
;
.ant-select-selection-selected-value
{
font-size
:
14px
;
}
}
.search-input
{
height
:
32px
;
outline
:
none
;
border
:
1px
solid
#d9d9d9
;
border-left
:
none
;
padding-left
:
8px
;
color
:
#333
;
}
.
search-input
:
:
placeholder
{
color
:
DarkGray
;
}
}
.entry
{
width
:
120px
;
margin
:
0
6px
;
}
.btns
{
height
:
32px
;
text-align
:
right
;
.ant-input-search
{
height
:
32px
;
margin-top
:
15px
;
&
-compare
{
margin-top
:
15px
;
}
&
-entry
{
line-height
:
32px
;
}
}
.titleColumn
{
.ant-checkbox-group-item
{
display
:
block
;
/* compare button style */
&
-button-gap
{
margin-right
:
10px
;
}
}
.applyfooter
{
/* apply button style */
.apply
{
text-align
:
right
;
&
-search-input
{
padding-left
:
10px
;
}
}
/* compare button style */
Button
.mediateBtn
{
margin
:
0
2px
0
8px
;
}
/* each row's Intermediate btn -> Modal*/
.selectKeys
{
/* intermediate result is dict, select box for keys */
.select
{
margin-right
:
12%
;
}
.ms-Dropdown
{
width
:
120px
;
float
:
right
;
margin-right
:
10%
;
}
}
src/webui/src/static/style/slideBar.scss
deleted
100644 → 0
View file @
3fe117f0
$barHeight
:
56px
;
/* drowdown and select default bgcolor */
$drowBgColor
:
#f2f2f2
;
/* drowdown and select hover bgcolor */
$drowHoverBgColor
:
#e2e2e2
;
/* refresh button */
.fresh
{
border
:
none
;
color
:
#fff
;
font-size
:
16px
;
padding
:
0
8px
;
}
.fresh
:hover
{
color
:
#fff
;
background-color
:
#006cb5
;
}
.dropdown
{
/* make dropdown content box position in blue bar bottom */
padding-bottom
:
14px
;
.down-icon
{
font-size
:
20px
!
important
;
padding-right
:
6px
;
}
}
.interval
{
display
:
inline-block
;
font-size
:
16px
;
color
:
#fff
;
.ant-form
{
display
:
inline-block
;
}
form
.ant-select
{
width
:
166px
;
}
.ant-select-selection
{
background-color
:
transparent
;
border
:
none
;
color
:
#fff
;
outline
:
none
;
font-size
:
16px
;
}
.ant-select-arrow
{
color
:
#fff
;
}
.fresh
{
margin-right
:
10px
;
}
.ant-btn-ghost
{
padding
:
0
10px
;
}
.ant-btn-ghost
[
disabled
]
{
background-color
:
#005b98
;
color
:
#fff
;
}
}
/* set select bgcolor */
.ant-select-dropdown-menu
{
background-color
:
$drowBgColor
;
}
.ant-select-dropdown-menu-item
:hover
{
background-color
:
$drowHoverBgColor
;
}
.ant-select-dropdown-menu-item-active
{
background-color
:
transparent
;
}
/* set dropdown bgcolor */
.ant-dropdown
{
.ant-dropdown-menu
{
padding
:
0
;
background-color
:
$drowBgColor
;
border-radius
:
0
;
.ant-dropdown-menu-item
{
font-size
:
16px
;
}
.ant-dropdown-menu-item
:hover
,
.ant-dropdown-menu-submenu
:hover
{
background-color
:
$drowHoverBgColor
;
}
}
}
.ant-dropdown-menu-sub
{
padding
:
0
;
background-color
:
$drowBgColor
;
border-radius
:
0
;
.ant-dropdown-menu-item
:hover
{
background-color
:
$drowHoverBgColor
;
}
}
.menu-list
{
position
:
relative
;
top
:
13px
;
}
.ant-dropdown
{
.menuModal
{
position
:
relative
;
top
:
12px
;
}
}
.ant-select-selection-selected-value
{
font-size
:
16px
;
font-family
:
'Segoe UI'
,
Tahoma
,
Geneva
,
Verdana
,
sans-serif
;
}
.ant-dropdown-menu-submenu-title
{
font-size
:
16px
;
}
.ant-dropdown-menu-item
:hover
,
.ant-dropdown-menu-submenu-title
:hover
{
background-color
:
transparent
;
}
.nav
{
width
:
95%
;
height
:
$barHeight
;
margin
:
0
auto
;
line-height
:
$barHeight
;
/* mobile start*/
.left
{
text-align
:
left
;
/* more menu */
font-size
:
18px
;
color
:
#fff
;
a
,
a
:visited
{
color
:
#fff
;
text-decoration
:
none
;
}
.more-mobile
{
margin-right
:
10%
;
font-size
:
22px
;
position
:
relative
;
top
:
1px
;
}
.more-mobile
:hover
{
cursor
:
pointer
;
}
}
.center
{
text-align
:
center
;
img
{
height
:
38px
;
}
}
.right
{
text-align
:
right
;
button
{
margin-top
:
12px
;
}
}
/* mobile end */
/* tabelt mode */
.tabelt-left
{
height
:
$barHeight
;
.tabelt-img
img
{
position
:
relative
;
top
:
-5px
;
}
}
.tabelt-right
{
text-align
:
right
;
}
/* desktop mode */
.desktop-logo
{
position
:
relative
;
top
:
-3px
;
}
.desktop-right
{
font-family
:
'Segoe UI'
,
Tahoma
,
Geneva
,
Verdana
,
sans-serif
;
text-align
:
right
;
line-height
:
$barHeight
;
font-size
:
16px
;
color
:
#fff
;
a
{
color
:
#fff
;
text-decoration
:
none
;
}
img
{
width
:
20px
;
margin-right
:
8px
;
}
/* ? icon style */
.question
{
width
:
14px
;
margin-right
:
4px
;
}
.feedback
{
font-size
:
16px
;
margin
:
0
20px
;
}
.version
{
font-family
:
'Segoe UI'
,
Tahoma
,
Geneva
,
Verdana
,
sans-serif
;
font-size
:
16px
;
}
.margin-icon
{
margin-left
:
8px
;
}
}
}
/* public style in nav in threee mode*/
.more
{
color
:
#fff
;
font-size
:
24px
;
}
.more
:hover
{
cursor
:
pointer
;
}
/* overview and detail tabs common style */
a
.common-tabs
{
font-family
:
'Segoe UI'
,
Tahoma
,
Geneva
,
Verdana
,
sans-serif
;
font-size
:
16px
;
color
:
#b8c7ce
;
text-decoration
:
none
;
}
.common-tabs
:visited
,
.high-light
:hover
{
color
:
#fff
;
text-decoration
:
none
;
}
.common-tabs
:hover
,
.high-light
{
color
:
#fff
;
border-bottom
:
1px
solid
#fff
;
}
.left-right-margin
{
margin-left
:
20px
;
margin-right
:
20px
;
}
.left-margin
{
margin-left
:
20px
;
}
\ No newline at end of file
src/webui/src/static/style/succTable.scss
0 → 100644
View file @
aa316742
#succTable
{
height
:
404px
;
overflow-y
:
scroll
;
}
\ No newline at end of file
src/webui/src/static/style/table.scss
View file @
aa316742
...
...
@@ -24,129 +24,30 @@
}
}
}
/* add the brother selector to increase the priority */
#succeTable
.commonTableStyle
,
#tableList
.commonTableStyle
{
font-family
:
'Segoe UI'
,
Tahoma
,
Geneva
,
Verdana
,
sans-serif
;
tr
{
text-align
:
center
;
color
:
#212121
;
font-size
:
14px
;
}
th
{
padding
:
2px
;
background-color
:white
!
important
;
font-size
:
14px
;
color
:
#808080
;
text-align
:
center
;
}
.ant-table-expanded-row
{
/* background-color: #f2f2f2 */
background-color
:
transparent
;
}
tr
:hover
{
/* cancel antd table default hover style */
td
{
background-color
:
transparent
;
}
.ant-table-row-expand-icon
{
background-color
:
transparent
;
}
}
td
{
padding
:
0
15px
;
line-height
:
24px
;
}
.margin-mediate
{
margin
:
0
10px
;
}
.ant-table-row-expand-icon-cell
{
background
:
#ccc
;
width
:
50px
;
.ant-table-row-expand-icon
{
background
:
none
;
.detail-button
{
&
-operation
{
min-width
:
44px
;
border
:
none
;
margin-right
:
10px
;
}
i
{
color
:
#fff
;
}
.ant-table-row-expand-icon-cell
:hover
{
background
:
#ccc
;
}
.ant-table-selection-column
{
width
:
50px
;
}
}
/* let openrow content left*/
.hyperpar
{
text-align
:
left
;
line-height
:
18px
;
font-size
:
14px
;
overflow
:
hidden
;
margin-bottom
:
10px
;
}
/* the position of the pagination */
.ant-table-pagination.ant-pagination
{
margin
:
16px
0
;
float
:
right
;
margin-right
:
30px
;
}
.ant-modal-title
{
font-size
:
20px
;
}
/*disable select all checkbox in detail page*/
.ant-table-selection
{
display
:
none
;
}
/* fix the border-bottom bug in firefox and edge */
.
ant-table-thead
>
tr
>
th
.
ant-table-column-sorters
:
:
before
{
padding-bottom
:
25px
;
border-bottom
:
1px
solid
#e8e8e8
;
/* office-fabric-ui */
.ms-DetailsRow
{
height
:
30px
;
}
.margin-mediate
{
margin
:
0
10px
;
.detail-table
{
padding
:
5px
0
0
0
;
}
#detail-button
{
margin
:
2px
0
;
.common-style
,
.common-style
:visited
,
.common-style
:focus
{
height
:
26px
;
border
:
none
;
border-radius
:
0
;
background-color
:
#0078d4
;
}
.common-style
:hover
{
background-color
:
#106ebe
;
}
.common-style
:active
{
background-color
:
#005a9e
;
outline
:
0
;
}
.common-style
:disabled
{
background-color
:
#f4f4f4
;
}
.special
,
.special
:visited
,
.special
:focus
,
.special
button
{
height
:
26px
;
border
:
none
;
border-radius
:
0
;
outline
:
0
;
background-color
:
#f4f4f4
;
color
:
#333
;
}
.special
:hover
{
background-color
:
#eaeaea
;
}
.special
:active
{
background-color
:
#c8c8c8
;
outline
:
0
;
}
.special
:disabled
,
.special
button
:disabled
{
background-color
:
#f4f4f4
;
color
:
#d9d9d9
;
}
.columns-height
{
max-height
:
335px
;
overflow-y
:
scroll
;
}
src/webui/src/static/style/trialsDetail.scss
View file @
aa316742
$bg
:
#b3b3b3
;
#tabsty
{
.ant-tabs-nav-container
{
height
:
38px
;
}
.ant-tabs-tab
{
border
:
none
;
margin-right
:
0
;
line-height
:
38px
;
.ms-Pivot
{
.ms-Button
{
padding
:
0
;
/* reset fabric style */
margin-right
:
0
;
border-right
:
2px
solid
#fff
;
transition
:
0
.3s
;
&
:hover
{
background-color
:
$bg
;
}
.ant-tabs-nav-scroll
{
background-color
:
#b3b3b3
;
.ms-Button-flexContainer
{
background-color
:
$bg
;
}
.ant-tabs-tab-active
{
.panelTitle
{
background-color
:
#999
;
/*
span{
color: #fff;
font-weight: normal;
}
*/
.
ms-Pivot-link
:
:
before
{
height
:
0
;
}
.is-selected
{
background
:
#999
;
&
:hover
{
background
:
#999
;
}
}
}
.panelTitle
{
margin-right
:
14px
;
border-righ
t
:
2px
solid
#e8e8e8
;
.ms-Pivot-icon
{
margin-lef
t
:
1
2px
;
}
.ms-Pivot-text
{
/* Default metric | Hyper-parameter | Duration | Intermediate result*/
margin
:
0
12px
;
font-size
:
16px
;
font-weight
:
600
;
}
}
.trial
{
/* graph, title total height */
width
:
100%
;
height
:
478
px
;
/*
cancle default pane
l title
style
*/
.
ant-tabs-bar
{
margin
:
0
;
height
:
500
px
;
/*
graph al
l title
bg
*/
.
ms-FocusZone
{
background-color
:
$bg
;
}
.graph
{
height
:
432px
;
...
...
@@ -69,30 +81,54 @@
}
}
.allList
{
margin-top
:
15px
;
}
.default-metric
{
width
:
90%
;
text-align
:
right
;
margin-top
:
15px
;
.position
{
color
:
#333
;
.bold
{
font-weight
:
600
;
margin-right
:
10px
;
&
-graph
{
position
:
relative
;
}
&
-noData
{
position
:
absolute
;
left
:
48%
;
top
:
30%
;
color
:
#333
;
}
}
/* for # intermediate in intermediate graph*/
.detial-title
{
.ms-Button
{
i
{
font-size
:
22px
;
}
}
}
/* for yAxis # intermediate position in intermediate graph*/
.intermediate-graph
{
position
:
relative
;
.yAxis
{
color
:
#333
;
position
:
absolute
;
left
:
45%
;
top
:
86%
;
left
:
50%
;
top
:
88%
;
transform
:
translate
(
-50%
);
}
}
#tableList
{
width
:
96%
;
margin
:
0
auto
;
}
.detail-table
{
.ms-Button
{
padding
:
0
;
height
:
26px
;
margin-top
:
-2px
;
span
{
padding
:
0
;
}
}
}
src/webui/tsconfig.json
View file @
aa316742
{
"compilerOptions"
:
{
"outDir"
:
"build/dist"
,
"module"
:
"esnext"
,
"target"
:
"esnext"
,
"target"
:
"es5"
,
"lib"
:
[
"esnext"
,
"dom"
"dom"
,
"dom.iterable"
,
"esnext"
],
"sourceMap"
:
true
,
"allowJs"
:
true
,
"jsx"
:
"react"
,
"moduleResolution"
:
"node"
,
"rootDir"
:
"src"
,
"skipLibCheck"
:
true
,
"esModuleInterop"
:
true
,
"downlevelIteration"
:
true
,
"noImplicitAny"
:
false
,
"allowSyntheticDefaultImports"
:
true
,
"strict"
:
true
,
"forceConsistentCasingInFileNames"
:
true
,
"noImplicitReturns"
:
true
,
"noImplicitThis"
:
true
,
"noImplicitAny"
:
true
,
"strictNullChecks"
:
true
,
"suppressImplicitAnyIndexErrors"
:
true
,
"noUnusedLocals"
:
true
,
"baseUrl"
:
"."
"module"
:
"esnext"
,
"moduleResolution"
:
"node"
,
"resolveJsonModule"
:
true
,
"isolatedModules"
:
false
,
"noEmit"
:
true
,
"jsx"
:
"preserve"
},
"include"
:
[
"src
/**/*
"
"src"
]
}
src/webui/tsconfig.prod.json
deleted
100644 → 0
View file @
3fe117f0
{
"extends"
:
"./tsconfig.json"
}
\ No newline at end of file
src/webui/tsconfig.test.json
deleted
100644 → 0
View file @
3fe117f0
{
"extends"
:
"./tsconfig.json"
,
"compilerOptions"
:
{
"module"
:
"commonjs"
}
}
\ No newline at end of file
src/webui/yarn.lock
View file @
aa316742
This source diff could not be displayed because it is too large. You can
view the blob
instead.
test/config_test.py
View file @
aa316742
...
...
@@ -30,6 +30,12 @@ def gen_new_config(config_file, training_service='local'):
if
'gpuNum'
in
config
[
'trial'
]:
config
[
'trial'
].
pop
(
'gpuNum'
)
if
training_service
==
'frameworkcontroller'
:
it_config
[
training_service
][
'trial'
][
'taskRoles'
][
0
][
'command'
]
=
config
[
'trial'
][
'command'
]
config
[
'trial'
].
pop
(
'command'
)
if
'gpuNum'
in
config
[
'trial'
]:
config
[
'trial'
].
pop
(
'gpuNum'
)
deep_update
(
config
,
it_config
[
'all'
])
deep_update
(
config
,
it_config
[
training_service
])
...
...
@@ -106,7 +112,7 @@ if __name__ == '__main__':
parser
=
argparse
.
ArgumentParser
()
parser
.
add_argument
(
"--config"
,
type
=
str
,
default
=
None
)
parser
.
add_argument
(
"--exclude"
,
type
=
str
,
default
=
None
)
parser
.
add_argument
(
"--ts"
,
type
=
str
,
choices
=
[
'local'
,
'remote'
,
'pai'
,
'kubeflow'
],
default
=
'local'
)
parser
.
add_argument
(
"--ts"
,
type
=
str
,
choices
=
[
'local'
,
'remote'
,
'pai'
,
'kubeflow'
,
'frameworkcontroller'
],
default
=
'local'
)
parser
.
add_argument
(
"--local_gpu"
,
action
=
'store_true'
)
parser
.
add_argument
(
"--preinstall"
,
action
=
'store_true'
)
args
=
parser
.
parse_args
()
...
...
test/config_test/examples/cifar10-pytorch.test.yml
View file @
aa316742
...
...
@@ -13,7 +13,7 @@ assessor:
optimize_mode
:
maximize
trial
:
codeDir
:
../../../examples/trials/cifar10_pytorch
command
:
python3 main.py --epochs
2
command
:
python3 main.py --epochs
1 --batches
1
gpuNum
:
1
useAnnotation
:
false
...
...
test/generate_ts_config.py
View file @
aa316742
...
...
@@ -42,6 +42,21 @@ def update_training_service_config(args):
config
[
args
.
ts
][
'kubeflowConfig'
][
'azureStorage'
][
'azureShare'
]
=
args
.
azs_share
if
args
.
nni_docker_image
is
not
None
:
config
[
args
.
ts
][
'trial'
][
'worker'
][
'image'
]
=
args
.
nni_docker_image
elif
args
.
ts
==
'frameworkcontroller'
:
if
args
.
nfs_server
is
not
None
:
config
[
args
.
ts
][
'frameworkcontrollerConfig'
][
'nfs'
][
'server'
]
=
args
.
nfs_server
if
args
.
nfs_path
is
not
None
:
config
[
args
.
ts
][
'frameworkcontrollerConfig'
][
'nfs'
][
'path'
]
=
args
.
nfs_path
if
args
.
keyvault_vaultname
is
not
None
:
config
[
args
.
ts
][
'frameworkcontrollerConfig'
][
'keyVault'
][
'vaultName'
]
=
args
.
keyvault_vaultname
if
args
.
keyvault_name
is
not
None
:
config
[
args
.
ts
][
'frameworkcontrollerConfig'
][
'keyVault'
][
'name'
]
=
args
.
keyvault_name
if
args
.
azs_account
is
not
None
:
config
[
args
.
ts
][
'frameworkcontrollerConfig'
][
'azureStorage'
][
'accountName'
]
=
args
.
azs_account
if
args
.
azs_share
is
not
None
:
config
[
args
.
ts
][
'frameworkcontrollerConfig'
][
'azureStorage'
][
'azureShare'
]
=
args
.
azs_share
if
args
.
nni_docker_image
is
not
None
:
config
[
args
.
ts
][
'trial'
][
'taskRoles'
][
0
][
'image'
]
=
args
.
nni_docker_image
elif
args
.
ts
==
'remote'
:
if
args
.
remote_user
is
not
None
:
config
[
args
.
ts
][
'machineList'
][
0
][
'username'
]
=
args
.
remote_user
...
...
@@ -69,7 +84,7 @@ def convert_command():
if
__name__
==
'__main__'
:
parser
=
argparse
.
ArgumentParser
()
parser
.
add_argument
(
"--ts"
,
type
=
str
,
choices
=
[
'pai'
,
'kubeflow'
,
'remote'
,
'local'
],
default
=
'pai'
)
parser
.
add_argument
(
"--ts"
,
type
=
str
,
choices
=
[
'pai'
,
'kubeflow'
,
'remote'
,
'local'
,
'frameworkcontroller'
],
default
=
'pai'
)
parser
.
add_argument
(
"--nni_docker_image"
,
type
=
str
)
parser
.
add_argument
(
"--nni_manager_ip"
,
type
=
str
)
# args for PAI
...
...
@@ -79,7 +94,7 @@ if __name__ == '__main__':
parser
.
add_argument
(
"--data_dir"
,
type
=
str
)
parser
.
add_argument
(
"--output_dir"
,
type
=
str
)
parser
.
add_argument
(
"--vc"
,
type
=
str
)
# args for kubeflow
# args for kubeflow
and frameworkController
parser
.
add_argument
(
"--nfs_server"
,
type
=
str
)
parser
.
add_argument
(
"--nfs_path"
,
type
=
str
)
parser
.
add_argument
(
"--keyvault_vaultname"
,
type
=
str
)
...
...
test/metrics_test.py
View file @
aa316742
...
...
@@ -56,9 +56,9 @@ def get_metric_results(metrics):
final_result
=
[]
for
metric
in
metrics
:
if
metric
[
'type'
]
==
'PERIODICAL'
:
intermediate_result
.
append
(
metric
[
'data'
])
intermediate_result
.
append
(
json
.
loads
(
metric
[
'data'
])
)
elif
metric
[
'type'
]
==
'FINAL'
:
final_result
.
append
(
metric
[
'data'
])
final_result
.
append
(
json
.
loads
(
metric
[
'data'
])
)
print
(
intermediate_result
,
final_result
)
return
[
round
(
float
(
x
),
6
)
for
x
in
intermediate_result
],
[
round
(
float
(
x
),
6
)
for
x
in
final_result
]
...
...
test/pipelines-it-frameworkcontroller.yml
0 → 100644
View file @
aa316742
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.
jobs
:
-
job
:
'
integration_test_frameworkController'
timeoutInMinutes
:
0
steps
:
-
script
:
python3 -m pip install --upgrade pip setuptools --user
displayName
:
'
Install
python
tools'
-
script
:
|
cd deployment/pypi
echo 'building prerelease package...'
make build
ls $(Build.SourcesDirectory)/deployment/pypi/dist/
condition
:
eq( variables['build_docker_img'], 'true' )
displayName
:
'
build
nni
bdsit_wheel'
-
script
:
|
source install.sh
displayName
:
'
Install
nni
toolkit
via
source
code'
-
script
:
|
sudo apt-get install swig -y
PATH=$HOME/.local/bin:$PATH nnictl package install --name=SMAC
PATH=$HOME/.local/bin:$PATH nnictl package install --name=BOHB
displayName
:
'
Install
dependencies
for
integration
tests
in
frameworkcontroller
mode'
-
script
:
|
if [ $(build_docker_img) = 'true' ]
then
cd deployment/pypi
docker login -u $(docker_hub_user) -p $(docker_hub_pwd)
echo 'updating docker file for installing nni from local...'
# update Dockerfile to install NNI in docker image from whl file built in last step
sed -ie 's/RUN python3 -m pip --no-cache-dir install nni/COPY .\/dist\/* .\nRUN python3 -m pip install nni-*.whl/' ../docker/Dockerfile
cat ../docker/Dockerfile
export IMG_TAG=`date -u +%y%m%d%H%M`
docker build -f ../docker/Dockerfile -t $(test_docker_img_name):$IMG_TAG .
docker push $(test_docker_img_name):$IMG_TAG
export TEST_IMG=$(test_docker_img_name):$IMG_TAG
cd ../../
else
export TEST_IMG=$(existing_docker_img)
fi
echo "TEST_IMG:$TEST_IMG"
cd test
python3 generate_ts_config.py --ts frameworkcontroller --keyvault_vaultname $(keyVault_vaultName) --keyvault_name $(keyVault_name) \
--azs_account $(azureStorage_accountName) --azs_share $(azureStorage_azureShare) --nni_docker_image $TEST_IMG --nni_manager_ip $(nni_manager_ip)
cat training_service.yml
PATH=$HOME/.local/bin:$PATH python3 config_test.py --ts frameworkcontroller --exclude multi_phase
displayName
:
'
integration
test'
test/pipelines-it-local-windows.yml
View file @
aa316742
jobs
:
-
job
:
'
Test'
-
job
:
'
integration_test_local_windows'
timeoutInMinutes
:
0
steps
:
-
script
:
|
...
...
@@ -8,8 +9,7 @@ jobs:
-
script
:
|
python -m pip install scikit-learn==0.20.0 --user
python -m pip install keras==2.1.6 --user
python -m pip install https://download.pytorch.org/whl/cu90/torch-0.4.1-cp36-cp36m-win_amd64.whl --user
python -m pip install torchvision --user
python -m pip install torch===1.2.0 torchvision===0.4.1 -f https://download.pytorch.org/whl/torch_stable.html --user
python -m pip install tensorflow-gpu==1.11.0 --user
displayName
:
'
Install
dependencies
for
integration
tests'
-
script
:
|
...
...
test/pipelines-it-local.yml
View file @
aa316742
jobs
:
-
job
:
'
integration_test_local_ubuntu'
timeoutInMinutes
:
0
steps
:
-
script
:
python3 -m pip install --upgrade pip setuptools --user
...
...
Prev
1
…
10
11
12
13
14
15
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment