Skip to content

Commit 6dc8077

Browse files
committed
deploy: 12e7d4b
1 parent 7c440e5 commit 6dc8077

File tree

1 file changed

+21
-44
lines changed

1 file changed

+21
-44
lines changed

js/neuralnetwork_builder.js

Lines changed: 21 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
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

Comments
 (0)