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
f253576f
"driver/conv_driver.cpp" did not exist on "71d6b19d18e267bb6b8e04711bc37e241aaed55e"
Commit
f253576f
authored
Nov 15, 2018
by
Lijiao
Committed by
QuanluZhang
Nov 15, 2018
Browse files
Support hyper-band (#358)
parent
1e9cd5fe
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
110 additions
and
98 deletions
+110
-98
src/webui/public/icon.png
src/webui/public/icon.png
+0
-0
src/webui/src/components/Overview.tsx
src/webui/src/components/Overview.tsx
+2
-0
src/webui/src/components/overview/TrialProfile.tsx
src/webui/src/components/overview/TrialProfile.tsx
+1
-0
src/webui/src/components/trial-detail/Para.tsx
src/webui/src/components/trial-detail/Para.tsx
+106
-98
src/webui/src/static/interface.ts
src/webui/src/static/interface.ts
+1
-0
No files found.
src/webui/public/icon.png
View replaced file @
1e9cd5fe
View file @
f253576f
29.9 KB
|
W:
|
H:
29.9 KB
|
W:
|
H:
2-up
Swipe
Onion skin
src/webui/src/components/Overview.tsx
View file @
f253576f
...
@@ -103,6 +103,7 @@ class Overview extends React.Component<{}, OverviewState> {
...
@@ -103,6 +103,7 @@ class Overview extends React.Component<{}, OverviewState> {
const
clusterMetaData
=
sessionData
.
params
.
clusterMetaData
;
const
clusterMetaData
=
sessionData
.
params
.
clusterMetaData
;
const
endTimenum
=
sessionData
.
endTime
;
const
endTimenum
=
sessionData
.
endTime
;
const
assessor
=
sessionData
.
params
.
assessor
;
const
assessor
=
sessionData
.
params
.
assessor
;
const
advisor
=
sessionData
.
params
.
advisor
;
trialPro
.
push
({
trialPro
.
push
({
id
:
sessionData
.
id
,
id
:
sessionData
.
id
,
author
:
sessionData
.
params
.
authorName
,
author
:
sessionData
.
params
.
authorName
,
...
@@ -118,6 +119,7 @@ class Overview extends React.Component<{}, OverviewState> {
...
@@ -118,6 +119,7 @@ class Overview extends React.Component<{}, OverviewState> {
trainingServicePlatform
:
trainingPlatform
,
trainingServicePlatform
:
trainingPlatform
,
tuner
:
sessionData
.
params
.
tuner
,
tuner
:
sessionData
.
params
.
tuner
,
assessor
:
assessor
?
assessor
:
undefined
,
assessor
:
assessor
?
assessor
:
undefined
,
advisor
:
advisor
?
advisor
:
undefined
,
clusterMetaData
:
clusterMetaData
?
clusterMetaData
:
undefined
clusterMetaData
:
clusterMetaData
?
clusterMetaData
:
undefined
});
});
// search space format loguniform max and min
// search space format loguniform max and min
...
...
src/webui/src/components/overview/TrialProfile.tsx
View file @
f253576f
...
@@ -20,6 +20,7 @@ class TrialInfo extends React.Component<TrialInfoProps, {}> {
...
@@ -20,6 +20,7 @@ class TrialInfo extends React.Component<TrialInfoProps, {}> {
trialConcurrency
:
tiralProInfo
.
runConcurren
,
trialConcurrency
:
tiralProInfo
.
runConcurren
,
tuner
:
tiralProInfo
.
tuner
,
tuner
:
tiralProInfo
.
tuner
,
assessor
:
tiralProInfo
.
assessor
?
tiralProInfo
.
assessor
:
undefined
,
assessor
:
tiralProInfo
.
assessor
?
tiralProInfo
.
assessor
:
undefined
,
advisor
:
tiralProInfo
.
advisor
?
tiralProInfo
.
advisor
:
undefined
,
clusterMetaData
:
tiralProInfo
.
clusterMetaData
?
tiralProInfo
.
clusterMetaData
:
undefined
clusterMetaData
:
tiralProInfo
.
clusterMetaData
?
tiralProInfo
.
clusterMetaData
:
undefined
});
});
return
(
return
(
...
...
src/webui/src/components/trial-detail/Para.tsx
View file @
f253576f
...
@@ -22,6 +22,11 @@ interface ParaState {
...
@@ -22,6 +22,11 @@ interface ParaState {
visualValue
:
VisualMapValue
;
visualValue
:
VisualMapValue
;
}
}
interface
SearchSpace
{
_value
:
Array
<
number
|
string
>
;
_type
:
string
;
}
message
.
config
({
message
.
config
({
top
:
250
,
top
:
250
,
duration
:
2
,
duration
:
2
,
...
@@ -54,6 +59,82 @@ class Para extends React.Component<{}, ParaState> {
...
@@ -54,6 +59,82 @@ class Para extends React.Component<{}, ParaState> {
};
};
}
}
getParallelAxis
=
(
dimName
:
Array
<
string
>
,
searchRange
:
SearchSpace
,
parallelAxis
:
Array
<
Dimobj
>
,
accPara
:
Array
<
number
>
,
eachTrialParams
:
Array
<
string
>
,
paraYdata
:
number
[][]
)
=>
{
if
(
this
.
_isMounted
)
{
this
.
setState
(()
=>
({
dimName
:
dimName
,
visualValue
:
{
minAccuracy
:
accPara
.
length
!==
0
?
Math
.
min
(...
accPara
)
:
0
,
maxAccuracy
:
accPara
.
length
!==
0
?
Math
.
max
(...
accPara
)
:
1
}
}));
}
// search space range and specific value [only number]
for
(
let
i
=
0
;
i
<
dimName
.
length
;
i
++
)
{
const
searchKey
=
searchRange
[
dimName
[
i
]];
switch
(
searchKey
.
_type
)
{
case
'
uniform
'
:
case
'
quniform
'
:
parallelAxis
.
push
({
dim
:
i
,
name
:
dimName
[
i
],
max
:
searchKey
.
_value
[
1
],
min
:
searchKey
.
_value
[
0
]
});
break
;
case
'
randint
'
:
parallelAxis
.
push
({
dim
:
i
,
name
:
dimName
[
i
],
max
:
searchKey
.
_value
[
0
],
min
:
0
});
break
;
case
'
choice
'
:
const
data
:
Array
<
string
>
=
[];
for
(
let
j
=
0
;
j
<
searchKey
.
_value
.
length
;
j
++
)
{
data
.
push
(
searchKey
.
_value
[
j
].
toString
());
}
parallelAxis
.
push
({
dim
:
i
,
name
:
dimName
[
i
],
type
:
'
category
'
,
data
:
data
});
break
;
default
:
parallelAxis
.
push
({
dim
:
i
,
name
:
dimName
[
i
]
});
}
}
// get data for every lines. if dim is choice type, number -> toString()
Object
.
keys
(
eachTrialParams
).
map
(
item
=>
{
let
temp
:
Array
<
number
>
=
[];
for
(
let
i
=
0
;
i
<
dimName
.
length
;
i
++
)
{
if
(
'
type
'
in
parallelAxis
[
i
])
{
temp
.
push
(
eachTrialParams
[
item
][
dimName
[
i
]].
toString
()
);
}
else
{
temp
.
push
(
eachTrialParams
[
item
][
dimName
[
i
]]
);
}
}
paraYdata
.
push
(
temp
);
});
}
hyperParaPic
=
()
=>
{
hyperParaPic
=
()
=>
{
axios
axios
.
all
([
.
all
([
...
@@ -66,17 +147,14 @@ class Para extends React.Component<{}, ParaState> {
...
@@ -66,17 +147,14 @@ class Para extends React.Component<{}, ParaState> {
const
accParaData
=
res
.
data
;
const
accParaData
=
res
.
data
;
const
accPara
:
Array
<
number
>
=
[];
const
accPara
:
Array
<
number
>
=
[];
// specific value array
// specific value array
const
speValue
:
Array
<
string
>
=
[];
const
eachTrialParams
:
Array
<
string
>
=
[];
// yAxis specific name
const
speDimName
:
Array
<
string
>
=
[];
const
parallelAxis
:
Array
<
Dimobj
>
=
[];
const
parallelAxis
:
Array
<
Dimobj
>
=
[];
const
paraYdata
:
number
[][]
=
[];
const
paraYdata
:
number
[][]
=
[];
// experiment interface search space obj
const
searchRange
=
JSON
.
parse
(
res1
.
data
.
params
.
searchSpace
);
const
reallySearchKeys
=
Object
.
keys
(
searchRange
);
// trial-jobs interface list
Object
.
keys
(
accParaData
).
map
(
item
=>
{
Object
.
keys
(
accParaData
).
map
(
item
=>
{
if
(
accParaData
[
item
].
hyperParameters
!==
undefined
)
{
const
tem
=
JSON
.
parse
(
accParaData
[
item
].
hyperParameters
).
parameters
;
// get dim and every line specific number
speDimName
.
push
(
tem
);
}
if
(
accParaData
[
item
].
status
===
'
SUCCEEDED
'
)
{
if
(
accParaData
[
item
].
status
===
'
SUCCEEDED
'
)
{
if
(
accParaData
[
item
].
finalMetricData
&&
accParaData
[
item
].
hyperParameters
)
{
if
(
accParaData
[
item
].
finalMetricData
&&
accParaData
[
item
].
hyperParameters
)
{
// get acc array
// get acc array
...
@@ -93,101 +171,32 @@ class Para extends React.Component<{}, ParaState> {
...
@@ -93,101 +171,32 @@ class Para extends React.Component<{}, ParaState> {
accPara
.
push
(
accReal
);
accPara
.
push
(
accReal
);
// get dim and every line specific number
// get dim and every line specific number
const
temp
=
JSON
.
parse
(
accParaData
[
item
].
hyperParameters
).
parameters
;
const
temp
=
JSON
.
parse
(
accParaData
[
item
].
hyperParameters
).
parameters
;
speValue
.
push
(
temp
);
eachTrialParams
.
push
(
temp
);
}
}
}
}
});
});
// get [batch_size...] name, default each trial is same
const
dimName
=
reallySearchKeys
;
// if (speValue.length !== 0) {
this
.
getParallelAxis
(
dimName
,
searchRange
,
parallelAxis
,
accPara
,
eachTrialParams
,
paraYdata
);
const
dimName
=
Object
.
keys
(
speDimName
[
0
]);
if
(
this
.
_isMounted
)
{
this
.
setState
(()
=>
({
dimName
:
dimName
,
visualValue
:
{
minAccuracy
:
accPara
.
length
!==
0
?
Math
.
min
(...
accPara
)
:
0
,
maxAccuracy
:
accPara
.
length
!==
0
?
Math
.
max
(...
accPara
)
:
1
}
}));
}
// search space range and specific value [only number]
const
searchRange
=
JSON
.
parse
(
res1
.
data
.
params
.
searchSpace
);
for
(
let
i
=
0
;
i
<
dimName
.
length
;
i
++
)
{
const
searchKey
=
searchRange
[
dimName
[
i
]];
switch
(
searchKey
.
_type
)
{
case
'
uniform
'
:
case
'
quniform
'
:
parallelAxis
.
push
({
dim
:
i
,
name
:
dimName
[
i
],
max
:
searchKey
.
_value
[
1
],
min
:
searchKey
.
_value
[
0
]
});
break
;
case
'
randint
'
:
parallelAxis
.
push
({
dim
:
i
,
name
:
dimName
[
i
],
max
:
searchKey
.
_value
[
0
],
min
:
0
});
break
;
case
'
choice
'
:
const
data
:
Array
<
string
>
=
[];
for
(
let
j
=
0
;
j
<
searchKey
.
_value
.
length
;
j
++
)
{
data
.
push
(
searchKey
.
_value
[
j
].
toString
());
}
parallelAxis
.
push
({
dim
:
i
,
name
:
dimName
[
i
],
type
:
'
category
'
,
data
:
data
});
break
;
default
:
parallelAxis
.
push
({
dim
:
i
,
name
:
dimName
[
i
]
});
}
}
// get data for every lines. if dim is choice type
// number -> toString()
Object
.
keys
(
speValue
).
map
(
item
=>
{
let
temp
:
Array
<
number
>
=
[];
for
(
let
i
=
0
;
i
<
dimName
.
length
;
i
++
)
{
if
(
'
type
'
in
parallelAxis
[
i
])
{
temp
.
push
(
speValue
[
item
][
dimName
[
i
]].
toString
()
);
}
else
{
temp
.
push
(
speValue
[
item
][
dimName
[
i
]]
);
}
}
paraYdata
.
push
(
temp
);
});
// add acc
// add acc
Object
.
keys
(
paraYdata
).
map
(
item
=>
{
Object
.
keys
(
paraYdata
).
map
(
item
=>
{
paraYdata
[
item
].
push
(
accPara
[
item
]);
paraYdata
[
item
].
push
(
accPara
[
item
]);
});
});
// according acc to sort ydata
// according acc to sort ydata
if
(
paraYdata
.
length
!==
0
)
{
if
(
paraYdata
.
length
!==
0
)
{
const
len
=
paraYdata
[
0
].
length
-
1
;
const
len
=
paraYdata
[
0
].
length
-
1
;
paraYdata
.
sort
((
a
,
b
)
=>
b
[
len
]
-
a
[
len
]);
paraYdata
.
sort
((
a
,
b
)
=>
b
[
len
]
-
a
[
len
]);
}
}
this
.
setState
(()
=>
({
if
(
this
.
_isMounted
)
{
paraBack
:
{
this
.
setState
(()
=>
({
parallelAxis
:
parallelAxis
,
paraBack
:
{
data
:
paraYdata
parallelAxis
:
parallelAxis
,
}
data
:
paraYdata
}));
}
const
{
percent
,
swapAxisArr
}
=
this
.
state
;
}));
const
{
paraBack
}
=
this
.
state
;
}
const
{
percent
,
swapAxisArr
,
paraBack
}
=
this
.
state
;
// need to cut down the data
// need to cut down the data
if
(
percent
!==
0
)
{
if
(
percent
!==
0
)
{
const
linesNum
=
paraBack
.
data
.
length
;
const
linesNum
=
paraBack
.
data
.
length
;
...
@@ -198,13 +207,7 @@ class Para extends React.Component<{}, ParaState> {
...
@@ -198,13 +207,7 @@ class Para extends React.Component<{}, ParaState> {
if
(
swapAxisArr
.
length
>=
2
)
{
if
(
swapAxisArr
.
length
>=
2
)
{
this
.
swapGraph
(
paraBack
,
swapAxisArr
);
this
.
swapGraph
(
paraBack
,
swapAxisArr
);
}
}
// draw search space graph
this
.
getOption
(
paraBack
);
if
(
this
.
_isMounted
)
{
this
.
setState
({
option
:
this
.
getOption
(
paraBack
)
});
}
// }
}
}
}
}
}));
}));
...
@@ -297,7 +300,12 @@ class Para extends React.Component<{}, ParaState> {
...
@@ -297,7 +300,12 @@ class Para extends React.Component<{}, ParaState> {
});
});
}
}
}
}
return
optionown
;
// draw search space graph
if
(
this
.
_isMounted
)
{
this
.
setState
(()
=>
({
option
:
optionown
}));
}
}
}
// get swap parallel axis
// get swap parallel axis
...
...
src/webui/src/static/interface.ts
View file @
f253576f
...
@@ -32,6 +32,7 @@ interface Experiment {
...
@@ -32,6 +32,7 @@ interface Experiment {
trainingServicePlatform
:
string
;
trainingServicePlatform
:
string
;
tuner
:
object
;
tuner
:
object
;
assessor
?:
object
;
assessor
?:
object
;
advisor
?:
object
;
clusterMetaData
?:
object
;
clusterMetaData
?:
object
;
}
}
...
...
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