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
20
21
‰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{"config": [{"config": {"dtype": "float32", "name": "dense_1", "bias_constraint": null, "batch_input_shape": [null, 28], "kernel_initializer": {"config": {"minval": -0.05, "seed": null, "maxval": 0.05}, "class_name": "RandomUniform"}, "kernel_regularizer": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "use_bias": true, "trainable": true, "units": 14, "activity_regularizer": null, "activation": "linear", "bias_regularizer": null, "kernel_constraint": null}, "class_name": "Dense"}, {"config": {"bias_constraint": null, "units": 7, "name": "dense_2", "kernel_initializer": {"config": {"minval": -0.05, "seed": null, "maxval": 0.05}, "class_name": "RandomUniform"}, "kernel_regularizer": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "use_bias": true, "trainable": true, "activity_regularizer": null, "activation": "relu", "bias_regularizer": null, "kernel_constraint": null}, "class_name": "Dense"}, {"config": {"bias_constraint": null, "units": 14, "name": "dense_3", "kernel_initializer": {"config": {"minval": -0.05, "seed": null, "maxval": 0.05}, "class_name": "RandomUniform"}, "kernel_regularizer": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "use_bias": true, "trainable": true, "activity_regularizer": null, "activation": "relu", "bias_regularizer": null, "kernel_constraint": null}, "class_name": "Dense"}, {"config": {"bias_constraint": null, "units": 1, "name": "dense_4", "kernel_initializer": {"config": {"minval": -0.05, "seed": null, "maxval": 0.05}, "class_name": "RandomUniform"}, "kernel_regularizer": null, "bias_initializer": {"config": {}, "class_name": "Zeros"}, "use_bias": true, "trainable": true, "activity_regularizer": null, "activation": "linear", "bias_regularizer": null, "kernel_constraint": null}, "class_name": "Dense"}], "class_name": "Sequential"}
tensorflow2.1.3à{"loss": "mean_squared_error", "loss_weights": null, "metrics": ["accuracy"], "optimizer_config": {"config": {"decay": 0.0, "lr": 0.009999999776482582, "epsilon": 1e-07}, "class_name": "Adagrad"}, "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(  €$ ÍQ[hXx!TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8#HEAPX ˜!kernel:0bias:08SNOD0Xx!SNOD€, Ù:¾‚ÐF>æhm>ŠñC¾„u8¾Erj>´É"¾ªw¾_eY>V[¾ƒÞC>Û\/¾H’]¾Ýè>·VM¾¡Œg>iÚi>Ó÷    ¾-¾ //>†”=¾,pP¾gH>˜M¾ÓòY>O9m¾d:¾øZ >¨m%¾Ò¤>tµ->ûˆP¾B©T¾#áR>[ên¾˜C¾'>GöT¾}ø->̃@¾ñÉF¾ç.#>8=¾6„>•i>$-k¾cfO¾ò]>Ú¾C¾€¿E><¸¾Ø”0>þ™$¾Ua¾<O>ü-½D—;RõÚ»<ä½À½<=²/=ªü¼,ˆ<7÷½­èº¼ˆý<ŸÏ<½Z“ļd¯ä;-¹=§+=ªÂ¼w°=¡E·¼•«î;²™¼=9õ<Aqº¼®¦¼o±ú»l#=Ü**=€Ü€<–Ø«»Îä¼ÏµK<à98½…Ó»-3ù¹Q]=I§ü¼Ù&½oÖ¼žÓ)=QC<„ùÅ»Ãíí<h¡&½ Θ¼f:=Èo7½¸ôF=õQH½™—Þ<Dݶ¼L6¼(o»ü    ½¤ <    2<Y™ß<ÈA#<ji=®”°¼dÿ‡<Œ51» a    ½V ž¼}ÝÙ< Î»»Õ»¤b½
¦d<nݼ‚ï1½±yŸ=¯f=O ˜¼;| ½™¬z<†“½‹‚@¼ÄÎ<¢„©½ƒoÃ=\Euºic¼ÑA=‘Ó½w(=ÉüÀ=?±½áï¼lÕ=S%§¼d^Õ½‚Å=í½”¦=倪½R½”½¡½=Ær÷¼[ò<ÌÊ9;_YÀ½ô†é¼î<'=\±„¼âF½†x“=Ã:%½òp²=µu¼ø·½h¿Á=¦Pâ¼³@¼å ½¦÷u<·'˜<!¸=ÂÐ=SOw¼é #=£¾÷¼Ã:l¼Kؽײå<­=’=¸¼÷"    <    (½&óõ¼DºÛ¼ðʼ6+>=2<ø    ½™y>=ÅK8½ƒ“;‹?=ܓ$=ŠÌ<’º»h¯¦»è>ñ¼ÂV½èN¹¼3íø¼¿€Ç<6˼?#Ì<Â/L=ž‚½Œ’Ö<dTÑ»ú‰›<p+ <
Á<+5=ìÉA<yòE= U=r‹÷¼åàB»Öé¼jqл•ë>¼Ö:&»ï†ü<ÈÂÌ<6cúºùã—<äHõ<½y½æ"½oÄ=(-‚¼,¤ë<ZÒ½‘pí¼¹@¼\\A½I­¼Ò0½U1?¼Yü ½I
&=f    å<¡}¼Ÿ¹1¼    Â<ËíX=\K=_7:Ù¹=<,-¼Vöß¼i­=Ä^½ =Øió»ß‚<AÁ*=ŽÐ<_\U½Ï &=4yŽ»†ºZ¼"Õ<ÝÃ;€
º¸_v\½\ð<<¾Ÿ5½B~e½š=ÍY!½ŸQn¼íœ³¼þvÈ<†ýÐ<y$ػһn=w;.
½K†µ»q¹t<2ƼÖÖò<ræC<«ø<¯Ž¼×–|¼&½àþjº@Ø=u"b¼ý¢<U€¼ö‘ûºÿ§;;vã)½Z"-¼¶Æø¼£N½÷+W¼D7¶9šî輝M½–Ö½Ýë2¼æ `½ç©ÿ¼eÇJ¼ïP¼Ãl½þe¼‘<rgË<NY‰;½&e»‘ :<̾Q=m£=b ®»ȋ¼I*w;/Ê=î=½oìã»6Ü;¸    ê»- <dɼÀxB<¤‘"=LkQ¼U*Ò<G!=k¶<¥°g=-nz<r X¼N¿¾<I°<°÷¼ŸNE<ü‹=`;ß<‹ž©<éœL½aã¹æÏÃ9ë°;hÿ¨:® <?.Ä»,]<G”\<äÆ$»“¶¼W;½sˆ =A‘0=3ù-=‚Ô<C†K¼˜(<= 8º–¯    ½Zk½Ý‹¼ø    ¼’„=6,î<°)T¼ÎiÙ¼ðê¼Óâj<¼ú<'@D=cY#½Qô½A®n<¿­¼ªM@=ÕÇË»;³;ƒòˆ¼ª½mT;*r‰<ÆéÀ<½ì    ;VØ¡<D½;N=Bè?¾f
E>ïJ>y»=¾¿ 6¾Vû=>ƂA¾Œê<¾)»;>-B¾qÜ:>|>¾×®>¾éöA>Ðm›¼ç&¾ì ¾$s€¼¾SŠ<C×¾L„¼ìT•=¼>¨P$¼dµ>à{; û=D¢ ½7ñõ=³3ð= /@½44>œ¿“»Ã:ß=
ïU<ÈÝ4¾4x¾aì¼dA¾Z<z¯½Zõ$=–䩽H…¾ÀÆ=~
¾´o¶»’Ðç½<+ÿ;
õ=Tî(>‹$
< i#>Nç½+û>ˆt˺Å·½OÉô½~ú =šÃ¾ 0=Ì˾±}3<}úß½Õw5¾Ëž°<“û-¾81e<‚Þ&¾äÎ<+‹+>‰$¢=Zo=Bš>Â'M½[;>yÚ(=0ÿù½y ¾Œ†;e¬û½O¼ñ¾m;½N‡ï=a¯;>öÉ7½D1>>}¨<ÄÉ >€fʼDÓ(¾ ¬8¾ =ßξØO¼‘}ë½OU=–%ø½!}'¾îő» »(¾`é˜:¢2¾Ç,m<E
G=@qÊ=÷jp=ò(ÿ=ö¤Þ<â’=>ƒÔ#¼”Ê(>—½">ÀÖ#¼'“>sÖ#¼Œã>僯=   *8ÍQ[xP0TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°4HEAPXø/dense_2H¸-Ø/ X weight_namesdense_2/kernel:0dense_2/bias:0(  Ø*ˆÍQ[h284TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø5HEAPX X4kernel:0bias:08SNODð1284SNOD@7à0  `,ÍQ[x;TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿp?HEAPX¸:dense_3Hx8˜: X weight_namesdense_3/kernel:0dense_3/bias:0(  BˆÍQ[hØ<ø>TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸@HEAPX ?kernel:0bias:08SNOD°<Ø<ø>SNODJ ;ÊûÈ;sA!=1T%= ´¼¨5&<2êó<Lrï<Ï˽Fí=ç!==ù@½ê¢½    1=Qݼ'Žû=X±<¼Wæû¼©iL=çð¥¼@¼&#>bÑ7>Tý>- ó<ï绘Ž×»·ý%>Œ2>]Š2>f±<VÀ;‚;—<¨^;¼(”¼s!>,8>OÇ>ɼ:<¼E½ý²T¼\ü>ôJ>ÀB¼ ’;SÓ:½w
;'á<`œ©¼š{ø»®~Ê<Oõºio½Wüp½ö¢<½Ÿ¼Aíõ¼ÙQ>ó}½dc»sçͼ˜ó~¼Ú¹$½l©>©"=>ÎÄ<>lh½šÅٻހ½>•ù8>XLO< n༭~$;Xj<m?B½ŠŽ<ì½^–Ÿ»Ù! =™Í=èn<<—=½¹L¤<1Dâ=“’½F­4½­ªE½’þÔ¼Xš;Ñ>ôi>Àˆ)>‚¿–;è%q;Á=œÒ'>§#$>Â"ö=×#¼×#¼]Ö#¼„·ï=G">Çí=Vᘼ×#¼×#¼:>ð=»ïA>†Ù¼Hì
;†”Í<’†©;­2½ÈîH>Mñ+>)‡E>ö«¶¼æ±>¼‰Úk¼„¶>´,@>üUA$ôAWA†¨vA™¦A¢ŠuAƒŽA6_†A­’zAë7AÐ=…Aì]~Aþ kA©¿Až8x#FFÜ8HF§t:ÓFl™>7YFñFïvc:Pz-FúW"9›ûéEEՃ7ÞßaF?åWFŠ–˜9nõ‰F¦’8õš9Fµ;z8:.FrÀ&FЍ3äUFT›d:B÷Fbå!8÷\ F–bFkº59€DFõj:ŸF&¯†9!2aFºïWFX:U‹FNr;•8FÛŠ9•FXÆFûÞx7oÂBF]Q;ïFSº»8€Ú*FB‘#Fg—­7ÓóQF¢:à) F ŽC8ãñFî F‚4”8Ù+CF~fB:GhFe6~8d F6NFó€º9Åg?FŠHQ:,FYܪ9â™+F¼h$FçZY9½wSFöS„;†¨ FjS8´6,FeÕ$F·òê8–uSF[;:gO Fw¢€9zûUF®MFº1:;óƒF€\;aj/F ½r8 øE:íEX[í9¨|F—8:LÁËEJI86À2šBûr”BöW]9V©ÀBkÒS8ð“|Bž·8Óð8£À#8¾î8žÌ6 ZÊ8£÷Fò‰÷1×GŠ¢ºFØ=GWªàA”GŒF2“ùF÷­VGÝϳ9Œ*8ô nGÏ GKñgGw÷ŽB‰Ù»/lêu:–ÁîF\äXG•öU4$#7;²/7OÖ9ԜH6êÃB1×8£€ú3HÔ8bGKîN8·%š8,¹œGƒÐRGµ¿˜G&¯×Bl|¸6Ïu29‘GS¼ŽGz^:À‘:*Æ9ÍW:AGw8¸®t:×)4Gh¶ð8 €U5ðp 4°„GG=IGøXBGM`RB`‹Á7yüÉ:§ÜÉFIØ5G8=rCøà   =«1=l^#8y$ŠCÃÓ+Cqª‡C~j?úná<º°÷="ùæBëyCгH£F8ç„9Š&4ðãÓHÿaIʉI`l<Žâ07#aG;<!ÑH¹öIoº§F  ˆC8ÍQ[xÐMTREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0RHEAPXxMdense_4H8KXM X weight_namesdense_4/kernel:0dense_4/bias:0(  ÀC8ÍQ[h˜O¸QTREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿxSHEAPX ØQkernel:0bias:08SNODpO˜O¸QSNODÀT`N  |,ÍQ[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 ÍQ[hˆ[¨]TREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(bHEAPXÈ]AdagradHSNOD`[ˆ[¨]_°aTREEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿpcxHEAP°ˆrSNODh__°aSNODPZ¸l(Èm8ØnHèoXøph¸rxÈsUŠ©E¬÷SE^bE ÃEý<ME$¤ÂEƒ±qEKÕEæœÆE@‘EÈZÓEÉE¡NºEC3RE˜©EÛTE‘pbE–ÃE¾MME˜³ÂEÅqEi"ÕEάÆE‘EˆkÓE3­ÉE‚]ºE^DRE‘©©EÊTEوbE¾¤ÃEêcME÷ÇÂE®ÞqEF8ÕEVÁÆEu‘EJÓE%ÂÉEÃpºE[RE2±©EÀ)TEé“bEP­ÃEmMEQÐÂE9éqEˆAÕE'ÊÆE¿%‘E1ŠÓEËÉEyºEŒdREZž0Cú.àBˆNóBt€LCØõÔBêICXùB9]CæqMCÒ4CØMZC}RC‹'BCQ”×B:|/CBåÞB0òB”3KCəÓBݔHCuÐ÷Bp\CæLC°8CñËXC5µPCºã@CkÖBÛl.C"­ÝBjÜðB ûICDTÒByUGC<öBÿ½ZCvÉJCñLC¨dWCgpOCµ?C"¼ÔBF4-Cý3ÜBAcïBX–HCBÔÐBÝêECZiôBÅ2YCaTIC7<C)ÑUCÊýMCÆ[>CÈ"ÓB&YŠ?u5?øÎE?=ɞ?zC+?Žœ?D.F?tòª?éŸ?µm?Àç?Ø£?…þ–?®Ô,?+Š?u&6? ÛF?Ôqž?ú+?a    œ?¨ F?Ìcª?Vœž?©çl?‹þ¦?¬¢?H¢–?ˆé,?—wŽ?
/;?:L?t£?®’0?M¡?÷L?[é¯?P¾£?ž-t?E¬?yܧ?éf›?-2?s”?'}D?ÇoV?X\ª?xE9?xÞ§?î;U?\;·?A¼ª?8J?Ÿ]³? ÿ®?ó¡?žª:?»    CâÛ·BýàËBNfC8ªBÄCÿ•ÁB«)CdaCĄêB$C :"Cu¦C•ù¨B×ùC|ã¶B´×ÊB•†CÃM©BÐèC݀ÀBˆ¹(Cj€Cq:éB,#C!U!C‡ÑCL ¨B¨ãC¥qµB¿DÉBIGC õ§Bø°CCõ¾Bjb'Cù@C^çBÍÊ!CS C£C豦BGzCúˆ³Ba,ÇBç©C=1¦BXCìô¼B°§%C°¤CôäBº CçfCìCð¤BÈõB&ÿ™B!Ê¥B¹RCRª“Bî C`Æ®BȤC©‹C _ÑBÄtC<ZC®C¥–Bš7õB¿™Bb¥B¿C›M“BÄ CÇ[®BKLCµ8CÞàÐB¸C¦C=3C¥F–BŽ’ôBù-™Bê¤B×¢ Ciä’BÖg Cnâ­BqçC³ÚC¼QÐBåºCu¥C›ÙCÉەB×óBM®˜BÜ_¤B%8 CŒm’B?ÿ CÝX­BuCïoC¾¯ÏB KCz8CÆsCwc•BÞ¼EÊEE6WE5¼£E3Î9Ep¡Eú·PE•¯Eå¤EˆrzEÌô©E惨EW¢›EñH:E™¶E0ÇCEáUE—¢EÇ{8E{E Eâ5OEçQ®E(¯£E£¤xE1´¨EhQ§EˆšE³ç8E¢LŽEúôAE±ðSE¡E;¬6E3­žE?MEd”¬E"¢E1vEB §Enª¥Eþ™Eþ7EoPŠEô!<E ªME馜EÕ1E¸ZšEcLGEìî§EŽExoE)¢¢Eí'¡EzߔE†1EýôèCIžC€¯CŸDq“C÷D¯2¥Cçä D¸sD°øÇCAšDI<D"íúC‰‹’C +éCcyžCåN¯Cü¸DË “C71DRd¥Coÿ D†D-ÈCÓ³DCWD”"ûCH¼’CeèCšçC~«®CæIDÿ“CnÇDBݤC'Š Dð!D/ƒÇCID(åD1VúC¤>’C    ¢èC} žC¢Í®C¤iDæI“CCêD‹¥Ca­ D|ED¦¼ÇCrDžDwšúCep’C  øC8ÍQ[x(  0DˆÍQ[h  ¸EÍQ[x(  ÔEˆÍQ[h  \G8ÍQ[xVariable:0Variable_1:0Variable_2:0Variable_3:0Variable_4:0Variable_5:0Variable_6:0Variable_7:0((  ”G8ÍQ[h  ÌGÍQ[x