Heating controller with neural thermal model written in Python
Jacek Kowalski
2018-06-24 425bf71fc0b24b547006686d83404c54b983de0b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
‰HDF
 
ÿÿÿÿÿÿÿÿØtÿÿÿÿÿÿÿÿ`ˆ¨ TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøHEAPX0Èmodel_weightsoptimizer_weights(ˆ¨ Hkeras_version` @backend
` H model_config6`ÐUh`(TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿH HEAPX( dense_1dense_2dense_3dense_40SNOD8`€8V`V€XGCOL2.1.3
tensorflow6{"class_name": "Sequential", "config": [{"class_name": "Dense", "config": {"trainable": true, "bias_initializer": {"class_name": "Zeros", "config": {}}, "bias_regularizer": null, "bias_constraint": null, "kernel_regularizer": null, "batch_input_shape": [null, 28], "name": "dense_1", "kernel_constraint": null, "dtype": "float32", "activity_regularizer": null, "use_bias": true, "units": 14, "activation": "linear", "kernel_initializer": {"class_name": "RandomUniform", "config": {"maxval": 0.05, "seed": null, "minval": -0.05}}}}, {"class_name": "Dense", "config": {"bias_regularizer": null, "bias_constraint": null, "kernel_regularizer": null, "units": 7, "name": "dense_2", "kernel_constraint": null, "activity_regularizer": null, "use_bias": true, "kernel_initializer": {"class_name": "RandomUniform", "config": {"maxval": 0.05, "seed": null, "minval": -0.05}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "activation": "linear", "trainable": true}}, {"class_name": "Dense", "config": {"bias_regularizer": null, "bias_constraint": null, "kernel_regularizer": null, "units": 3, "name": "dense_3", "kernel_constraint": null, "activity_regularizer": null, "use_bias": true, "kernel_initializer": {"class_name": "RandomUniform", "config": {"maxval": 0.05, "seed": null, "minval": -0.05}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "activation": "linear", "trainable": true}}, {"class_name": "Dense", "config": {"bias_regularizer": null, "bias_constraint": null, "kernel_regularizer": null, "units": 1, "name": "dense_4", "kernel_constraint": null, "activity_regularizer": null, "use_bias": true, "kernel_initializer": {"class_name": "RandomUniform", "config": {"maxval": 0.05, "seed": null, "minval": -0.05}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "activation": "linear", "trainable": true}}]}
tensorflow2.1.3à{"loss": "mean_squared_error", "metrics": ["accuracy"], "optimizer_config": {"class_name": "Adagrad", "config": {"decay": 0.0, "lr": 0.009999999776482582, "epsilon": 1e-07}}, "loss_weights": null, "sample_weight_mode": null}H`€ X layer_namesdense_1dense_2dense_3dense_4 @backend
` Hkeras_version`TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð!HEAPXðdense_1HSNODˆ°Ð-¸-Ø/P8x8˜: K8KXM°Ð X weight_namesdense_1/kernel:0dense_1/bias:0(  €$ PZhXx!TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8#HEAPX ˜!kernel:0bias:08SNOD0Xx!SNOD€, `$>ËO„>    ûg>_ØC¾ýn|>¨-¾Î­S¾‰a3¾Om¾ÝJ>;¸‡¾¡dz>´°n¾±8¾Új><è4>À*y>‡N¾9­*>·tL¾¨Þ_¾IWo¾DŽ¾.y>ppO¾¡1>µG_¾E#8¾àO>äö…>ê•F>¢Ç#¾Sz>1^¾E¾B¾ <6¾™d>bR¾‡³S>g)¾ïžo¾Vx,>ò_ƒ>ï›6>>w¾¿^>Œ‰S¾ÁÚ[¾Ü€¾A¡d¾k>Ùö¾F{T>ŒÙQ¾›|¾p“"½ÀÊR<)4=c8¼c¢"=fý»»Öʺs ½¼Wïï¼Z“‘½š3s;Ç«<Xë<<r؊;aS&;:¶Ÿ<Õ²È;|d7»Cj=îÑ0<EcŒ½ôB¹1\Å<]p½</¼ÞiV¼l=yÓ<w£?½ÎÐ< ˜¼&…6½øÊ¼Æq~»n %½ýL‰=|¯[½oØ]½”¶5<¼Ú==    ºk9˜Bk<yu@½ñS3=yñ.<ÛÞ0=]“µ»u©‚¼0ÿ ½_û¾<Ü]v½ ,~½ ¿`<¯&*=ê÷ڼܡ¼¨«<¯‰=«_̼¼ù’»2úç¼;ܼ„o:<›°ÿ¼Ý†\½<ÉK;„K>=V«    »–û®¼¯çµ<ñÕÃ=n`e=Ò»‘½y"<­ýÓ¼×u»½ ûŒ½éÀà½ò    q»û    ’½Uƒ“<Ü"¯¼)ܽ“;©=¥fŒ=ý›Z=¾[Œ½²þ>‰KȽ{¨Û½†cO½<÷½ÔüÜ=µ:¦½¤žp=ÖÙÿ½%Þ½&²ˆ=²=
>Iªî½ìp>ù*¾eíÞ½öח½˜8¾²©=ñã½lŘ=ä"À½¸½u’ò¼ƒ»h;k¾z<4 =¨áE=Vn¼XÞè=kÒ±¼*cG½Uçœ<7ßY½^…%½|½®>ê<P½À¤½g <Bª¼—ؐ»G‰¹»ùúž;! ½@«½Cf½ú×=n„E=zÇa½·÷7½ªw9=¹Yú¼„:<\ê½çfg=t4‚½r4;ö>K½î ½àC=Õ¦ô<.2½nöö¼>3#½'¹e<7©³¼°r‰»:*0=q<ʼ+X¼âV=ÿ)½Ø*½}æ;Y>1<‚#à¼?Q ;¼ó¶¼-$<}Š==k£<ë¤=ŒŽ'½îÿç¼XHÀ<Ÿ$½¼°$ƽ…‡¼©Ð;÷†`¼þ='p¬<`.¼Õæ¶<p™<z³¼˜Ü$½ÎôÏ<nxX=x\½Ù³Ñ½Ñ¥%¼RÓY¼³f¼@¬Ì¼ª²Â;Dõ/=·Ç¼¥î±¼ºª%=Ö0«;  a½õ'v=áÒd<Ž[b¼—êL½—½ënÓ<Hç<ݘ†¼@@g=å‹g;Ñ ;:S=Wÿ¼AÆã¼}Ê=ý½Aóª½Ï ¹;f 1¼)tŸ¼iÞ¶¼ã!=:§Y=³È|<ü(=aÈ¿¼Œ<¢Î‡½TÍ`=²rÉ<®D¼ ¥¼ƒå<‚uË:•ìê<”Á=.ꉼV=ú&;fÒ¼sE½Ðéu:?:·<ª^÷¼fXS¼õLd<
ô@½H¹À¼ìÆ;±;LU
=þËë¼Ø.½Ñ(=9;&= Yb¼òÃã<n¼›<@ˆ½^½~4½ à©<ÇL-½ïôú¼Äȼ!N&¼œ^ »ß¢Ø¼Ä†<-~µ;ì&<ÏÉI½á#ó¼6Œ2½@[¹Ô^ë¼4Œ¼²š<ŠF«<D;Ë0½v+=¥™-»Ä2ª<'uy=´œ=ꑃ½«=½<Õc½5 +=áˆA»NÎÄ<˜Á¼    ^><Zß1»‚õ    ;Z%â<Sä;T–Ù¼3†Æ<©—£¼Q¶»È=$dó¼à`½K$ñ<–-»;–™<Âí½B”¼š¼v
D½|ꩼã˜<@Š½'56< Úa½Yç1<_[¼Îâo<ŸÍ<é„)½bDV»¿F½;0“¼µ.k½íÕ¼o`ϼ+\<È â;Ä#<­—â<²»¼ô
V>6sa>`Q_>]X¾Åa>í‘[¾ƒÉf¾VrX¾f¾ €Y>éÓb¾ýh]>bv]¾Âàb¾ª˜=Ö¹>öyÎ=žÓ=ê_3¾ø»¾’ ¾g®>êÓ>¢
;>`‰'>e¿J¾A>¾x1¾2€ó=Ü®:>:sÿ=!Ä>“Æ/¾xœ¾NÈ7¾ž›'¾Å÷½Üê/¾áü½é>Év4>7]0>ð=>a*>Èt9>Ê0>dD!¾ ˆB¾!ò¿½KP¾¤ò¾d·4¾b¾úlø=ŒË">=¾
>ÞöÀ½a    ¾y¢$¾¥s¾î‹è=ÂDŸ=6K*>,¾KýI¾êœ:¾Ý›¾åä=?-ø=÷ú>¢¾ãQL¾× ¾pE*¾~ú=lI÷=V
>¯wH>Á*6>’¨ó=øx0>Þ¾§¤?¾&ð¾å·Ä½GND¾Ê6Ò½BÐ@¾æÝÒ=ˆ€4>1a">‰í2>k’=>cK>Þ¹ù=¨C7¾m²¾Šw¾Ù䬽á­¾Ór,¾+sÓ½i·à=|ë:>¥h?>ˊཆ ¾´¾½ê¾tö#>OÁÅ=ß/D>GÞ=>»¥:>cñB>Ö?>nÿ;¾Î©=¾ª2¾2Ç=   *8PZxP0TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°4HEAPXø/dense_2H¸-Ø/ X weight_namesdense_2/kernel:0dense_2/bias:0(  Ø*ˆPZh284TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø5HEAPX X4kernel:0bias:08SNODð1284SNOD@7à0  `,PZx;TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿp?HEAPX¸:dense_3Hx8˜: X weight_namesdense_3/kernel:0dense_3/bias:0(  BTPZhØ<ø>TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸@HEAPX ?kernel:0bias:08SNOD°<Ø<ø>SNODJ ;&'¾džó½‹k¾»X*¾4•<¾+ª ¾i%#¾àY¾Ñ
¾×®C¾è 2¾³-¾w±>K‹*>¡    1>Ò|Î=;B>æA>    >@>%@>¤>ô@¾l ¾è¯¾‰z#¾O<¾ãˆ¾ˆýUE1qÉEŠ£ŸEÈ"©E½ÂE:X•Eá&‹EÅ3rE´LªEËíaEJº¡EÀ©E°ZEº)“EžVE9ƒÉEø±ŸEþ1©EYÎÂE®e•Eœ3‹E§HrE!\ªEÿbEõÈ¡EÄ,©E•gE07“E$VETŽÉEŸºŸEC;©E'ÙÂEÃm•E;‹EsVrEyeªE bEÑÑ¡EJ6©E9oE+?“EŸ+VEݛÉE}şEàF©E¦æÂE+x•EWD‹EÂhrEúpªE bEmÜ¡E"B©EêxE0I“EŒhîBÉbC÷@4CîÜ=CF\Ck3)C+CÝå CH?C1þCg±5C#è@C–C¨$C©­ìBnˆ`Cä$3C+<C†H[C°9(CCgCa C^>Cµ«Cà{4Cã?CÌC±r#C1    ëBÅ_C`2C<l;C| ZCÅH'CïPCíØ C}ç<C)MCU3C5å>C[ C;d"CòºéBý]C©;1Cûy:C·YCì‰&C¹tCxl Còû;C®C«i2C>C˜HC£!COÇ4?ñ¥§?|+‡?¾Ž?Ãפ?ú1?Ud?:Î\?ßtŽ?â¿W?_N‡?¾´‘?o?Ðlv?€±<?žf®?÷،?”?¼«?,,…?®$n?ÍÉf?At”?àDa?ό?Îø—?|Gy?q€?n¦??%±?9!?³]–?f¡®?‹‡?Š4r?pÚj?ù–?$Ãd?“óŽ?ښš?™q}?¯Ž‚?‚¹B?q)³?Vê?Y˜?à­°?X‰?ºv?’†m?í˜?¥°f?ô§?ðzœ?€y€?a„?Ð!¿BfÖ4CT    Cm"Cã(5C|O CnòBBHúB[C§÷BՅC…z!Cƒ™CŽpCˆ¶¿BÇT5CÏnCCn¤5C² Cü9óBeÚúBãwCª…÷B9éCQç!C÷C\ÔCTˆ¿BJ5C9CÌ_C–^5CC| CýóBT<úB6GCw¹öB!ºC© !CKÌCU°C›ˆ¾BÁ"4C¯`C҇C7M4C&¥ C‘íñBjøBôjCƵôBØíCIŸ C÷CûCLe‘BPÏCEÌÙBoûåBŽÁC¬®ËB+ƒºBÕË©BôÉæB ¾¢BoIÜBÃçB>ÀBËmÇB£O‘Bd¹C    ¨ÙBÆÖåB«C̋ËB—gºB£©©BÀ£æBb›¢Bÿ%ÜBڙçBšÀBNÇBå‘BQ†CÒRÙB¢åBŸvC”9ËB¯&ºBCX©BhLæB”C¢BÒÛBä9çBÔ¿BŒÇBÜèB¬ZCÙBH3åB~GCÔîÊBxô¹B©B;æB­Ý¡B„‰ÛBäßæBõ‘¿B’ÃÆBÐ •E”fFÑÜEE³çEPÝFŠ˜ÓE™/½Ey“·EýéEA¡¯E©~ÚE0GðE9ÛÄE±kÊEt£“Eÿ$FÝ°ÚE:€åEŒFâyÑE3f»E¶žµEººçEKÁ­EüxØE±ÛíECñÂEø|ÈEގEªFCvÓE9ìÝEÐF+ÊEl,µE:Á¯E¶ÿßEGE¨EMÑEýåE…¼ESÝÁEd„EXFðEÓäÃEª›ÍEïE§Œ»Euº§EÎÁ¢EïjÏEàœEúÁE…õÔEś®E    ³E‹¬«CwfD#D×ÆD
. DBúC˜¼ÚC7‹ÝCºÎ    D—ÖC'D¦-DìäæC›„ìC±®C,Ë!DmDÌÝ    DÀˆ"DÞÖýC7@ÞC¹àCöâ DûÙCDGDãtêC13ðCáT°COS#D×]Dò4 Dõ
$D8"DmàCEÌâC8 DO…ÛCq[Dª D;¾ìC‘òCP°C§ê"DîD¦â
D|’#D•ÿC.àCöâCÓÙ D*ÉÚCÈ D¾1D7/ìCjòCÕ/AKQ~A«IAB UA]vAFÅ<AR¸/A‘NAºWA3A 3LA’ÅUA§™2A¤â9A’ DA9 °AúŒ~A0ÖAF¬”Aû¶ A$Ÿ¦AGúDGY}ŽGӍ+G9ú©G#lùG? “G)[‹G¸‹ËGó¼qGÒû‚G+{¿G–!cGkEuGáÀ²G”ëTG`n€GY»G¦è^G8ԜGM¾åGÏ؇GŽ9 CC4…CS°C¤üGJÛ`J/œ<J!¯ÊF  TB PZxÐMTREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0RHEAPXxMdense_4H8KXM X weight_namesdense_4/kernel:0dense_4/bias:0(  `B PZh˜O¸QTREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿxSHEAPX ØQkernel:0bias:08SNODpO˜O¸QSNODÀT`N  |,PZx Htraining_configà`øXXTREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ^HEAPX Xtraining@`V€X   weight_namestraining/Adagrad/Variable:0training/Adagrad/Variable_1:0training/Adagrad/Variable_2:0training/Adagrad/Variable_3:0training/Adagrad/Variable_4:0training/Adagrad/Variable_5:0training/Adagrad/Variable_6:0training/Adagrad/Variable_7:0(  lB QZhˆ[¨]TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(bHEAPXÈ]AdagradHSNOD`[ˆ[¨]_°aTREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿpcxHEAP°ˆrSNODh__°aSNODPZ¸d(Èe8ØnHèoXøph¸rxÈs  ŒH8QZx(  ØfˆQZhòÿD:­ZEy¾!EÀàƒE—J;E:IE    ÚOE)·gEá)ÌEêߔE!÷Eñ@­EźENgÁEÞ#EpŽE+QEˆI¬E2êrEh¼‚Eî@‡ERE ÐyEK¶7EÑߖEr,UE–UeE)mEKt7Es EZÞjE·ÂE€~ˆE “E<(˜E‹%E¥óuEüí4E‰”EmíQEÑaE/ˆiE l>E­.¦EhnsEêÈEålE©M˜E敝E|“ExeE)/)E8)ŠENDE: REÙ¨YE°€LEr„³E…&ƒEý,ÙE°ˆ˜E(Z¤E½'ªEygÿDÈXEóÙ E'¢‚EW :EP½GEœ6NE SE¬f¹Ep„‡E>àEk’EâÅ©Ei¸¯EñEÒû‚Eç…@EE@žEÖu_ElpEý±xE¨÷EA‡EJÁFELi£Eù³fET>xEÍ`€EÌÊ(ETí’EfƒWEð•±E‚OzE˺†E c‹E  ÄHQZx(  àHTQZh  4I QZxVariable:0Variable_1:0Variable_2:0Variable_3:0Variable_4:0Variable_5:0Variable_6:0Variable_7:0((  @I QZh  LIQZx