Heating controller with neural thermal model written in Python
Jacek Kowalski
2018-06-24 66a9fb40efe1311b34a3cee3f83f10c6990759af
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
‰HDF
 
ÿÿÿÿÿÿÿÿØtÿÿÿÿÿÿÿÿ`ˆ¨ TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøHEAPX0Èmodel_weightsoptimizer_weights(ˆ¨ Hkeras_version` @backend
` H model_config3`ÐUh`(TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿH HEAPX( dense_1dense_2dense_3dense_40SNOD8`€8V`V€XGCOL2.1.3
tensorflow3{"class_name": "Sequential", "config": [{"class_name": "Dense", "config": {"kernel_constraint": null, "bias_constraint": null, "units": 14, "kernel_initializer": {"class_name": "RandomUniform", "config": {"seed": null, "maxval": 0.05, "minval": -0.05}}, "dtype": "float32", "activation": "linear", "bias_regularizer": null, "activity_regularizer": null, "batch_input_shape": [null, 28], "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_1", "trainable": true, "use_bias": true, "kernel_regularizer": null}}, {"class_name": "Dense", "config": {"kernel_constraint": null, "kernel_regularizer": null, "bias_constraint": null, "kernel_initializer": {"class_name": "RandomUniform", "config": {"seed": null, "maxval": 0.05, "minval": -0.05}}, "bias_regularizer": null, "units": 7, "activation": "relu", "trainable": true, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_2", "activity_regularizer": null, "use_bias": true}}, {"class_name": "Dense", "config": {"kernel_constraint": null, "kernel_regularizer": null, "bias_constraint": null, "kernel_initializer": {"class_name": "RandomUniform", "config": {"seed": null, "maxval": 0.05, "minval": -0.05}}, "bias_regularizer": null, "units": 14, "activation": "relu", "trainable": true, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_3", "activity_regularizer": null, "use_bias": true}}, {"class_name": "Dense", "config": {"kernel_constraint": null, "kernel_regularizer": null, "bias_constraint": null, "kernel_initializer": {"class_name": "RandomUniform", "config": {"seed": null, "maxval": 0.05, "minval": -0.05}}, "bias_regularizer": null, "units": 1, "activation": "linear", "trainable": true, "bias_initializer": {"class_name": "Zeros", "config": {}}, "name": "dense_4", "activity_regularizer": null, "use_bias": true}}]}
tensorflow2.1.3à{"metrics": ["accuracy"], "loss_weights": null, "loss": "mean_squared_error", "optimizer_config": {"class_name": "Adagrad", "config": {"epsilon": 1e-07, "decay": 0.0, "lr": 0.009999999776482582}}, "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(  €$ SQ[hXx!TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8#HEAPX ˜!kernel:0bias:08SNOD0Xx!SNOD€, õg¾÷˜W¾ôÞ>>î s>-4[>y'¾ØH^>t·(>cr> ƒF>±œJ>1.t¾ˆ´_¾ç¯3>;qH¾‡¾€KG>ì<Q>)†s>üE¾šBs>Ŝd>Ð}&>w;}>È2>øI]¾ãŒ:¾ÕÊI>¬€¾‹zI¾nýM>Cw>É&>Ñl¾e¿>»o>Ì&>û>Z>žw>‰©v¾<a¾A>”Ô~¾O¾·x>ös>Җc>@=¾_ž\>ìj>ÑT> s>½Ýf>ˆ d¾˜¬b¾zc8>~Bý¼}ý <BW=„1</1¼{×%=_&¡<=Âñ»6 g=L‘Ó»¼½hw&=À¿£»N0 ½:÷»x®Ù<¨º<¦ì컂×Á¼è>½˜Q=ÀZó;ës¼´U=0f2=戶9ñ';‡÷ù¹ïR½;偼i£¼Ï7:=cê[½v›±9/ÓÇ9°T¼_Œ<Y!˜<Å£€¼\Ôò;¤IÕ<®´î¼Ž}£¼ìlb½À    º=m2½£
V<^|?½Æ¬Ô9Q½/²Û<ÚsÁ9g´‰¼Ì±)=2 …;åk†½6>½ÇÒ½Ÿ:=Šß <ꅓ=yà·½:ŽV<«ª‰=†™¢=õ<ÿйý’½eN3½Ê×¼TŸ    ¼» ½ºŽM=M<³Þv=êTi½=od<1p¼7cI:§-#¼Œv…=ö*z½Š¬ýº ¨+½Ó½:¼UìÑ»\I<=³åž¼m‹‰¼c·˜½9˜=[>=½p÷<9qÓ<3öz=Øtð¼Ä{$½V½ ½òõ­ºT³ƒ½ž5=àäJ¼Ò&$=±Ó®<¶;í<óO <ñ¼9¼:Äu;îÄ<€Ê¬· ¯“¼íÀ½Ûkÿ;‡üü<$Ä==†.&<Ž—¾<²f:<t9 =:Sy<ïýä<%c$;o\¼Ü˜,½#¢g¼
r£½‡=Y<Nru<úõ¼ìÂ"½»ñ¼ìR"<;ͽ€;´õL¼¯-(=N‰=åÑã¼MAv½™b:(½ô¿µ»ª={8©¼?þ<n*Õ<WÖ½cž¼P@¼Z‘S=Ó=Þ=Q=™7½10±:û‰¼jA;¶ò;9–”¼TÝà< .‰¼Û⫼ù˜D=Ôsû¼R
¼øSN<ÔéE½ÞN²» õ½'}¼i‚ =(Xé:,W­<â5]¼í¤I½‚ÍT½†˜Ž<D~½'GY<£¼8úG=ƒ"*¼qQ=ü½7~´¼=´|<Õà»s^¼W°É¼n½
¨¼] ¼ûb"=¶wH<”½e°¼¬C·<`m¼vg½Ýúî;7Ì<;O%=ûÅô<Q½ø¥˜¼O…;ÔÒÇ<“C=°¼¼xG¼ç™·»Óˆ½>"=; =f½ÝT<åDÉ:€º¼(î>=jk?;@pÒ;øS»K.½Áƒ.¼@ E»3ÿ»ú ½o'¬;ÈF¦<Ogмӑ?= Ìß<[PË;+zÆ;©FŠ¼Çd=‹þòºbFi½ŠÞB<;#½Ÿ–»'ž)ºi˜,¼z[—; JŒ¼c”Ã<^C!<4ɼï5v¼M0»/û;-Ÿµ<ê:º·“-½©{<°o`=>PL½Ò,ø<I€E=¿.¼uF=cù'=ڄ ½õ"=)*<”ô)½¼ñ½<öPG½m,Y< ô;G4Ç:™B<·F=Àþü¼aŠ´<賙»›Æ¼N*<Y<t9ªù¨¼Ã—\¼Ü"½¢±;–¹¼Hò¼@» Ñ½TRʼv6ºâˆ<wD;¼´µ =JP½¹v½¼¼^½ÉT9|Æûºâ´°¼5!S=gµº<p½(½”‘<¼aøâ»ßUÐ;¸±%=­T¢:âá<ãvË:,¥]½–\*=H(3¼lþg;¹g¼‚@
¼ï†„<)¥;æ¼;€í¼Yœ.»Dˆð<Lk¼¼í»¼GW½X=Ρ¼…«Ý¼nîø¼?’^=ÇE½Š¯=NȽÖz;‘z=G피(÷»hT¾ÔF¾|M>ÕpN>\|X>[ƒR¾¨ÊQ>§ B>µ
R>*öT>  M>ðzU¾0K¾ÐÁ@>âö%¾ì÷½e¾==ÍL#½/7¾ì˜¾‹#¾F\ï½Äk¾    <.=f6=‹ž5¾<„.¾„â>w">    ’.>íÂ=®Tß<åA>ú@>¿ú5>Wü>«é>’…£<`³º6î>55->½ó=bS:>Qâ.>Ԃ¸MA¼¸>Lª+>gh¾iªÓ½O¹ ¾ ±E<Sç=µ%¾,Â"¾œöÅ=pä>˜#)>qû;Öu½Ñæ=ڝ.>¼D>Åñ>}Þ>*N4½`˜¼Œ#>™³>–:>ÃÑ>4’˜=€²Õ¼m³â¼@3Î=¡Õ>LÍ>b¹¸={Ž9>ºµÆ¼Îà™<J2>'>ÐoO>y§F>—SN>(i¼š'<½ð2Ê=Nô1>ýZ¾¾"÷6¾l(=í| =ÿ»¾8¾­L7¾¯¹7¾‡£<¾Ù„= –+;4:¾ 3¾¬@ø=¦œ>­/>m    &=w;ad>ª>1ù->G~#>)Ï3>`Û9>Üq*>-š¸=   *8SQ[xP0TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°4HEAPXø/dense_2H¸-Ø/ X weight_namesdense_2/kernel:0dense_2/bias:0(  Ø*ˆSQ[h284TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø5HEAPX X4kernel:0bias:08SNODð1284SNOD@7à0  `,SQ[x;TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿp?HEAPX¸:dense_3Hx8˜: X weight_namesdense_3/kernel:0dense_3/bias:0(  BˆSQ[hØ<ø>TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸@HEAPX ?kernel:0bias:08SNOD°<Ø<ø>SNODJ ;íKJ½û=Ë,A>ڇ¡<to¼þ#O>þZ'>Щ+ºzÅ<ãæ/½Gœâ¼ýH½²&>˜
½´’
<_<æX >¿õg<Žg½le*>6œ>ã'V½7ú»ºöŒ¼# 9zF<½Ò>7<z·š¼‘S½†H>°"'½!=þ·0>,>R¼Zý•<€hj¼@´¼Bs‹<<ký=€î+:`² º 0n;}'4=­÷E½ºhß<:U€<F­ ½)½êÂ5½ŽCÒ<Ø´Y¼
$.½é =†>Ž<š#=qá>=‡8E=M½ê“<½(7¼˜|\¼¤{M<“»%½š˜ë¼€”½ìš<£ç*=°-—;FD½3ì]¼9&ý=;$?¼½Ä
½¯Sè=ÿ2>;4½Lð’¼Q;í§ã¼ý0½˜47>ää½úí·<GKó¼C,)>¢´U½lúϼ˜¹,>4–>³¦.<mý8½Ÿ¼XlR¼`‡};SUA>O)¼×#¼M!>×#¼ÿÖ#¼á+>%>    ×#¼=P>öÖ#¼`ó<»ö“¼SÓ5>dPÙ¼ô×;X">”>Š»ÊA/½-Ƚ`:ü@¿*¼C@>¬X};\ÕAQËXAIÌIA)3BAÝ{AZ
A„mAªA•þ@I"AŠŽeAáèA¨A¶A½@ÜÜF樂E¢òEp\ÂEõvF`gõE¢ˆ”E±æ»E<­–E2^èE§ËüEŠ„™EeÓÁEɪ›ERTïE³F惽EÀÝïEÁPÀEädFϛãEh‹Ew'¯E|%Eö`×Eÿ¯ÅE¤rE…˜E    uEP»E. F¥éÁE›­õE½ÓÄE`FWOàE4 ‰Eœo¬E"ъEHÔEìáEíĈE™¬EÑ¥ŠEÇÿÔE”IFU>°EÛ®ÞE±À²EôŽ    Fæ(úE9ܘE@OÀEÈ֚EÉÃìE[
F®ªEOzÕE%¬Ep+F0ÇFIºžEû|ÈELù E¦÷E,wEi‰Eç?E.äE£iEœ_&B«tÇA^£ýA©ÇÊA+ÕBv.[<}f•G?­a<Þèù8Œ¢ZGe©AGøu-;>¬GéË9i=µiG€£I=½Aq5§,G/èG/ü08ºi†GHøµ:×¹¡8îE›Gç%S9¿AcG+PIGAȃ;à³Gnb88ì‰G´¶Í.Õ*IGûq2G—Ÿª4ŠãG»¥9,C<Ðú¹GV·;hö÷9›‡G&ÐoG2$&<‰¯ÖG.<%9 >ÞÓRCtžá=›<K€ C>áðBǀ0>77{CiœK;_åœ=¿Õ¼Ih%Ç<á?<    ‡¾IJW©I³w¬<; ¬I~¨:Ö¶F  ˆC8SQ[xÐMTREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0RHEAPXxMdense_4H8KXM X weight_namesdense_4/kernel:0dense_4/bias:0(  ÀC8SQ[h˜O¸QTREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿxSHEAPX ØQkernel:0bias:08SNODpO˜O¸QSNODÀT`N  |,SQ[x 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(  ¸d SQ[hˆ[¨]TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(bHEAPXÈ]AdagradHSNOD`[ˆ[¨]_°aTREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿpcxHEAP°ˆrSNODh__°aSNODPZ¸l(Èm8ØnHèoXøph¸rxÈs»°vEŽê«EڟEŠÔ™EôårET¨]E"rVEó‘fEލIE+dEÒµEÁnE¥ÌE3{E`ÁvEhõ«EbäŸEZޙEörE·]E¡€VE¡fE{›IEŠ:dE6ÞµEÆÑnEë±ÌE!†E²ÖvEª¬EÝñŸERë™E\ sEÂÊ]E/“VEFµfE<­IE5NdEDíµE#ænEõÂÌEŸ“ETévEg¬E¿ýŸEÃö™E$sE¼Û]Eù£VEäÆfE2½IEð_dEúµEUønE±ÑÌEҟE0ÚCT¯0CÕá(Cf¼#C—3Cz£ìB:/âB²¯øBúÐÑBIíòBñ×BCÀC£qXCÀߥB†™CQ90C…(CÕd#C÷C‚-ìB¸²áBÒ8øB_VÑBròB–vBCî‰CZùWCÀ¤¥B!ZC<Æ/C+(CD#C¼C^ºëB/9áB¬Ä÷B{ßÐBúñBÞBCUC‰ƒWC†k¥Bí
Cp?/C×¼'CT¦"CŸpCß*ëB¢¥àBž2÷BPÐBÌdñBŸACxCÓóVCå¥B’r?bY?(˜?œ?š)r?QÅZ?Q? f?B?šÊ_?Ü{®?¸Dq?B‡À?)l?¾    n?ù™?¬X•?r‘?ïVn?–+W?ÁYM?EXb?÷v>?—\?Vd«?Ú³m?†Ø¼?+ƒ?gQp?Êù›?Η?t¯’?Äwp?Y Y?F[O?}gd?~R@?5^?ˆF­?¹o?¿?øY?æa?X¹‘?ù§?Pµ‰?&Db?aL?›B?®åV?]/4?®P?Ç¢?(óa?:³?΄?¼4âB} Cc  C    Cï@äB9WËBiW¾B:ÛÖBOü®Bö§ÏB’Œ$C³:çB¦Y2CáȘBVÞáBé= C†f CêÈCêãBŽ    ËB9 ¾BEˆÖBu·®BaXÏB"I$C¼äæB 2Cٕ˜B\áBfå
Cî CŸuCfãBR”ÊBܽB ÖBåQ®BàÎB×å#Cb`æBŸ1C¼C˜B@µàB,x
CI§ Cª CüâBMþÉB ½B6kÕB’ЭBYGÎBh#C‡µåB 1CŽ×—B­h±BeòB¼<äB?ÝB°B6|ŸB½¯™B‡‘§BÞƎBœÐ£BÖ¾C”_®Bû>Cë\B‰±B×ññB»ÑãBÖ×ÜBNµ¯BÁ0ŸBñf™BÂB§Bn‚ŽBRƒ£B-‚C½®B×úCƒ\B\Ì°B¤ñBËtãBP}ÜB×k¯BvîžB'™Bâü¦BEGŽBz?£B MCÆ­B€¿C6$\Bs{°B~$ñB/ãBÜBh¯Bü¤žBÉà˜B6¯¦B-ŽB¬ô¢BCít­BT~CÚ¹[B ÉfE^3ŽEZkŽE ©‰EZjgEÜYPEà7DEô¡YEáê6EÛTEÑ,¤E.nhE(R²E¬²EFˆcE²;ŒE mŒEÀ‡EÛ*dEˆjME|wAEřVEÞS4EÎÚQEÆâ¡Eƒ+eE’دEœ{EÚÒ_E€ŠEà,ŠE–…Elp`ENJEg^>EU#SEýk1E«qNE³EŸE—eaE=­EŸæE…XECf…E§—…Eý2EÄ/YE„CEÔ(8E¿\LE8+E>µGE¨šE-ZE"K§EG*E§¥ËCØ®óCړùCԌñCxÍCfu·C® «C(<ÀCÒ¦žC 4»C¤&DE©ÏC :D‡ŒC»ÌC±:õCZøúCÛáòCÀ'ÎC½q¸C-¬C¨>ÁC&•ŸC–7¼C
ëD    ­ÐCD÷0CkÍCÎõCxûCê[óCb‡ÎC̸C¯a¬C<›ÁCQíŸC²”¼C)/DãÑCNiDSlCòÇÍCµöCMüC|'ôC­-ÏCOg¹Ckú¬Cœ9ÂCÅ C34½CM¤D§§ÑCbíD²ÚC  øC8SQ[x(  0DˆSQ[h  ¸ESQ[x(  ÔEˆSQ[h  \G8SQ[xVariable:0Variable_1:0Variable_2:0Variable_3:0Variable_4:0Variable_5:0Variable_6:0Variable_7:0((  ”G8SQ[h  ÌGSQ[x