1- var r = Object . defineProperty ; var n = ( l , t ) => r ( l , "name" , { value :t , configurable :! 0 } ) ; import * as m from "../../lib/model/nns/optimizer.js" ; const p = { abs :{ } , clip :{ min :0 , max :1 } , conv :{ kernel :5 , channel :16 } , dropout :{ drop_rate :.5 } , exp :{ } , flatten :{ } , full :{ size :10 , a :"sigmoid" } , gaussian :{ } , leaky_relu :{ a :.1 } , identity :{ } , log :{ } , mean :{ axis :0 } , negative :{ } , relu :{ } , reshape :{ size :[ 1 , 1 ] } , sigmoid :{ } , softmax :{ } , softplus :{ } , softsign :{ } , sparsity :{ rho :.02 } , square :{ } , sqrt :{ } , sum :{ axis :0 } , tanh :{ } , transpose :{ axis :[ 1 , 0 ] } , variance :{ axis :0 } } , s = { props :[ "modelValue" ] , template :`
1+ var r = Object . defineProperty ; var i = ( e , t ) => r ( e , "name" , { value :t , configurable :! 0 } ) ; import * as o from "../../lib/model/nns/optimizer.js" ; const n = { abs :{ } , acos :{ } , acoh :{ } , asin :{ } , asinh :{ } , atan :{ } , atanh :{ } , bdaa :{ alpha :{ type :"number" , default :1 , multipleOf :.1 } } , bent_identity :{ } , blu :{ beta :{ type :"number" , default :.1 , multipleOf :.1 } } , brelu :{ a :{ type :"number" , default :1 , multipleOf :.1 } } , ceil :{ } , celu :{ a :{ type :"number" , default :1 , multipleOf :.1 } } , clip :{ min :{ type :"number" , default :0 , multipleOf :.1 } , max :{ type :"number" , default :1 , multipleOf :.1 } } , cloglog :{ } , cloglogm :{ } , conv :{ kernel :{ type :"number" , default :5 } , channel :{ type :"number" , default :16 } } , cos :{ } , cosh :{ } , crelu :{ } , dropout :{ drop_rate :{ type :"number" , label :"Drop rate" , default :.5 , multipleOf :.1 , minimum :0 , maximum :1 } } , eelu :{ k :{ type :"number" , default :1 , multipleOf :.1 } , alpha :{ type :"number" , default :1 , multipleOf :.1 } , beta :{ type :"number" , default :1 , multipleOf :.1 } } , elish :{ } , elliott :{ } , elu :{ a :{ type :"number" , default :1 , multipleOf :.1 } } , erelu :{ } , erf :{ } , eswish :{ beta :{ type :"number" , default :1 , multipleOf :.1 } } , exp :{ } , felu :{ alpha :{ type :"number" , default :1 , multipleOf :.1 } } , flatten :{ } , floor :{ } , frelu :{ b :{ type :"number" , default :0 , multipleOf :.1 } } , full :{ out_size :{ type :"number" , label :"Output size" , default :10 , minimum :1 , maximum :100 } , activation :{ type :"string" , label :"Activation" , default :"sigmoid" , enum :[ "sigmoid" , "tanh" , "relu" , "leaky_relu" , "softsign" , "softplus" , "identity" , "polynomial" , "abs" , "gaussian" , "softmax" ] } } , function :{ func :{ type :"string" , default :"2*x" } } , gaussian :{ } , gelu :{ } , leaky_relu :{ a :{ type :"number" , default :.1 , multipleOf :.1 , minimum :0 , maximum :1 } } , identity :{ } , log :{ } , mean :{ axis :{ type :"number" , default :0 , minimum :0 , maximum :10 } } , negative :{ } , relu :{ } , reshape :{ size :{ type :"array" , default :[ 1 , 1 ] } } , sigmoid :{ } , softmax :{ } , softplus :{ } , softsign :{ } , sparsity :{ rho :{ type :"number" , default :.02 , multipleOf :.01 } } , square :{ } , sqrt :{ } , sum :{ axis :{ type :"number" , default :0 , minimum :0 , maximum :10 } } , tanh :{ } , transpose :{ axis :{ type :"array" , default :[ 1 , 0 ] } } , variance :{ axis :{ type :"number" , default :0 , minimum :0 , maximum :10 } } } , s = { props :[ "modelValue" ] , template :`
22 <div style="display: inline-flex; align-items: flex-end;">
33 <input v-if="modelValue?.length < 10" type="button" value="+" v-on:click="modelValue.push(0)">
44 <div>
@@ -8,7 +8,7 @@ var r=Object.defineProperty;var n=(l,t)=>r(l,"name",{value:t,configurable:!0});i
88 </div>
99 </div>
1010 </div>
11- ` } , o = { setup ( ) { const l = Vue . ref ( [ { type :"full" , size :10 , a :"sigmoid" , poly_pow : 2 } ] ) ; return { layers :l , changeType :n ( function ( e ) { const i = { type :l . value [ e ] . type , ... p [ l . value [ e ] . type ] } ; l . value . splice ( e , 1 , i ) } , "changeType" ) , addLayer :n ( function ( ) { l . value . push ( { type :"full" , size :10 , a :"sigmoid" , poly_pow : 2 } ) } , "addLayer" ) } } , data :n ( function ( ) { return { layerTypeNames :Object . keys ( p ) , activations : [ "sigmoid" , "tanh" , "relu" , "leaky_relu" , "softsign" , "softplus" , "identity" , "polynomial" , "abs" , "gaussian" , "softmax" ] } } , "data" ) , template :`
11+ ` } , y = { setup ( ) { const e = Vue . ref ( [ { type :"full" , out_size :10 , activation :"sigmoid" } ] ) ; return { layers :e , changeType :i ( function ( a ) { const l = { type :e . value [ a ] . type } ; for ( const [ m , p ] of Object . entries ( n [ e . value [ a ] . type ] ) ) l [ m ] = p . default ; e . value . splice ( a , 1 , l ) } , "changeType" ) , addLayer :i ( function ( ) { e . value . push ( { type :"full" , out_size :10 , activation :"sigmoid" } ) } , "addLayer" ) } } , data :i ( function ( ) { return { layerTypeNames :Object . keys ( n ) , layerTypes : n } } , "data" ) , template :`
1212 <div style="display: inline-flex; align-items: flex-end;">
1313 <input type="button" value="+" v-on:click="addLayer">
1414 <div>
@@ -17,50 +17,27 @@ var r=Object.defineProperty;var n=(l,t)=>r(l,"name",{value:t,configurable:!0});i
1717 <select v-model="layer.type" v-on:change="changeType(i)">
1818 <option v-for="type in layerTypeNames" :value="type">{{ type }}</option>
1919 </select>
20- <template v-if="layer.type === 'clip'">
21- Min: <input v-model.number="layer.min" type="number" step="0.1">
22- Max: <input v-model.number="layer.max" type="number" step="0.1">
23- </template>
24- <template v-if="layer.type === 'conv'">
25- Kernel: <input v-model.number="layer.kernel" type="number">
26- Channel: <input v-model.number="layer.channel" type="number">
27- </template>
28- <template v-if="layer.type === 'dropout'">
29- Drop Rate: <input v-model.number="layer.drop_rate" type="number" min="0" max="1" step="0.1">
30- </template>
31- <template v-if="layer.type === 'full'">
32- Size: <input v-model.number="layer.size" type="number" min="1" max="100">
33- Activation: <select v-model="layer.a" v-on:change="$forceUpdate()">
34- <option v-for="a in activations" :value="a">{{ a }}</option>
35- </select>
36- <input v-if="layer.a === 'polynomial'" v-model.number="layer.poly_pow" type="number" min="1" max="10">
37- </template>
38- <template v-if="layer.type === 'leaky_relu'">
39- Alpha: <input v-model.number="layer.a" type="number" min="0" max="1" step="0.1">
40- </template>
41- <template v-if="layer.type === 'mean'">
42- Axis: <input v-model.number="layer.axis" type="number" min="0" max="10">
43- </template>
44- <template v-if="layer.type === 'polynomial'">
45- n: <input v-model.number="layer.n" type="number" min="0" max="10">
46- </template>
47- <template v-if="layer.type === 'reshape'">
48- Sizes: <array_attr v-model="layer.size" />
49- </template>
50- <template v-if="layer.type === 'sparsity'">
51- Rho: <input v-model.number="layer.rho" type="number" />
52- </template>
53- <template v-if="layer.type === 'sum'">
54- Axis: <input v-model.number="layer.axis" type="number" min="0" max="10">
55- </template>
56- <template v-if="layer.type === 'transpose'">
57- Axis: <array_attr v-model="layer.axis" />
58- </template>
59- <template v-if="layer.type === 'variance'">
60- Axis: <input v-model.number="layer.axis" type="number" min="0" max="10">
20+ <template v-for="(aobj, attr) in layerTypes[layer.type]" :key="attr">
21+ {{ aobj.label ?? attr }}
22+ <template v-if="aobj.type === 'number'">
23+ <input v-model.number="layer[attr]" type="number" :step="aobj.multipleOf" :min="aobj.minimum" :max="aobj.maximum">
24+ </template>
25+ <template v-if="aobj.type === 'string'">
26+ <template v-if="aobj.enum">
27+ <select v-model="layer[attr]">
28+ <option v-for="a in aobj.enum" :value="a">{{ a }}</option>
29+ </select>
30+ </template>
31+ <template v-if="!aobj.enum">
32+ <input :value="layer[attr]" type="text">
33+ </template>
34+ </template>
35+ <template v-if="aobj.type === 'array'">
36+ <array_attr v-model="layer[attr]" />
37+ </template>
6138 </template>
6239 <input type="button" value="x" v-on:click="layers.splice(i, 1)">
6340 </div>
6441 </div>
6542 </div>
66- ` } ; export default class y { static { n ( this , "NeuralNetworkBuilder" ) } constructor ( ) { this . _app = Vue . createApp ( { } ) , this . _app . component ( "array_attr" , s ) , this . _app . component ( "nn_model" , o ) , this . _vue = null , this . _name = Math . random ( ) . toString ( 32 ) . substring ( 2 ) } get layers ( ) { const t = this . _vue ?this . _vue . $refs . layerselm . layers :[ { type :"full" , size :10 , a :"sigmoid" } ] , a = [ ] ; for ( let e = 0 ; e < t . length ; e ++ ) t [ e ] . type === "full" ? ( a . push ( { type : "full" , out_size : t [ e ] . size } ) , a . push ( { type : t [ e ] . a , n : t [ e ] . poly_pow } ) ) : a . push ( t [ e ] ) ; return a } get invlayers ( ) { const t = this . layers , a = [ ] ; for ( let e = t . length - 1 ; e >= 0 ; e -= 2 ) a . push ( t [ e - 1 ] , t [ e ] ) ; return a } get optimizer ( ) { return this . _opt && this . _opt . property ( "value" ) } makeHtml ( t , { optimizer :a = ! 1 } = { } ) { const e = t . span ( ) ; e . element . id = `nn_model_${ this . _name } ` ; const i = document . createElement ( "nn_model" ) ; i . setAttribute ( "ref" , "layerselm" ) , e . element . append ( i ) , this . _vue = this . _app . mount ( `#nn_model_${ this . _name } ` ) , a && t . span ( ) . select ( { label :" Optimizer " , values :Object . keys ( m ) , value :"adam" } ) } }
43+ ` } ; export default class f { static { i ( this , "NeuralNetworkBuilder" ) } constructor ( ) { this . _app = Vue . createApp ( { } ) , this . _app . component ( "array_attr" , s ) , this . _app . component ( "nn_model" , y ) , this . _vue = null , this . _name = Math . random ( ) . toString ( 32 ) . substring ( 2 ) } get layers ( ) { return ( this . _vue ?this . _vue . $refs . layerselm . layers :[ { type :"full" , out_size :10 , a :"sigmoid" } ] ) . map ( u => ( { ... u } ) ) } get invlayers ( ) { return this . layers . concat ( ) . reverse ( ) } get optimizer ( ) { return this . _opt && this . _opt . property ( "value" ) } makeHtml ( t , { optimizer :u = ! 1 } = { } ) { const a = t . span ( ) ; a . element . id = `nn_model_${ this . _name } ` ; const l = document . createElement ( "nn_model" ) ; l . setAttribute ( "ref" , "layerselm" ) , a . element . append ( l ) , this . _vue = this . _app . mount ( `#nn_model_${ this . _name } ` ) , u && t . span ( ) . select ( { label :" Optimizer " , values :Object . keys ( o ) , value :"adam" } ) } }
0 commit comments