context("Continue Functions")
# Create a DBN
dbn <- DeepBeliefNet(Layer(3, "c"), Layer(4, "b"), Layer(2, "g"))
weights <- c(
c(-3.4, 0.8, 3.0), # b1
# Eigen will represent this as a 4x3 matrix, in column-major:
c(16, 0.14, -0.3, 0.8,
0.03, -0.02, -0.3, 0.25,
0.01, 0.3, 0.6, -0.3), # W1
c(1.4, 0.2, 0.3, -0.1), # c1 = b2
c(-1.2, -3.1,
3.3, -2.4,
-1.3, 0.7,
-0.5, 0.8), # W2
c(2.4, -3.2) #c2
)
assign("weights", weights, dbn$weights.env)
# And an input vector
f <- t(c(0, .5, 1))
# Here is a converged error series:
error_converged <-
c(0.197808330013575, 0.0132530402654316, 0.00570677466938272,
-0.00834602834888734, -0.0238194753659796, 0.0187703572355211,
0.00229535456397571, -0.0207505527481902, 0.0139999862817116,
0.0317756538975053, 0.0160785992883984, -0.033912649856424, 0.0176180940545909,
-0.00874024804249406, 0.0206190132770129, -0.00182966602144763,
-0.0357498230910301, -0.0143295936575253, 0.0242330706490204,
-0.0376358076102845, -0.0270963585943356, -0.00513162306329236,
0.0274461484850664, -0.000711457966743034, -0.00238290515248664,
-0.00200585727366619, 0.0114001539014652, -0.0194921695782244,
-0.00465127235633321, 0.0138671914553829, 0.019925310724983,
0.033324495119378, -0.00135025060141459, -0.00521504294643178,
0.0295906239008904, -0.0264169437757786, 0.019664123285953, -0.0333339764758386,
0.00381258509625681, 0.0119881490175985, -0.00913647851047106,
0.0312630940437969, -0.0348076967726089, 0.0362994507831987,
0.0243624016925599, -0.0187436671098322, -0.0193397104255669,
-0.00499021778010763, -0.0028613808661513, -0.00135417880291119,
-0.0193516074024607, 0.0262528923541959, 0.00527651311263442,
0.00649842765583656, -0.0264631537335925, 0.00605703061365522,
-0.0259229845640995, -0.0254072747080028, 0.017732946897475,
0.0128627752720099, -0.0327298594319355, 0.0335325915289856,
0.0275453337583691, -0.0194720649065729, 0.000116083944998683,
0.00938992709289305, 0.0369319452455454, -0.0315051074990071,
-0.00933608403967693, 0.0145908095354866, 0.012911563291708,
-0.0286016295589227, 0.0333401178837195, -0.0275358059618343,
-0.0322236607545521, 0.000571679918607695, 0.0370344711141754,
0.00762100680842064, 0.00967803752269596, 0.00393156871637329,
0.000728475370528178, -0.00361727601947263, 0.000339865116896105,
0.00227362134581432, -0.000665711816819383, 0.00987042258149944,
0.0236589746249188, 0.0271357084818743, -0.021903584768353, 0.00645836630995385,
0.00942652462005615, 0.0208070534671471, 0.0287333269622829,
-0.0148441493026167, -0.0105195352785755, -0.0144936874949746,
0.00280930120632984, -0.00206027192604728, -0.0286185139482748,
0.00529905984951183, 0.0356304253727663, 0.0178459553418215,
0.0362633021527994, 0.0210535383559484, 0.026816035742797, 0.00815564669871703,
-0.00991831122673117, 0.0329629087311868, 0.0235872829714324,
0.0312424719021656, 0.00594438384496607, -0.0354966143441945,
-0.0214502652386762, 0.000651765799652785, 0.0273270883331448,
0.00950583221216686, -0.0219279612441547, -0.0290475800279249,
-0.0103813598531485, -0.0353883594591357, 0.0303292381905857,
-0.00294490703148767, 0.00143878149767406, 0.00996944131728262,
-0.0308895789880771, -0.00333036209078506, -0.0073861948343832,
-0.0333902169327624, 0.00264818646820262, -0.0370062676528841,
0.0263270970893931, -0.0376451812473312, 0.0235806765160616,
0.0251111138329469, -0.0217396548814327, -0.0068308474856615,
-0.0273504645777773, -0.000999042267333716, 0.0225927588113118,
-0.0200921269209031, 0.0251536156631168, 0.0186109697088506,
-0.00255281204762868, -0.0289716385417432, -0.0287379770419467,
0.00128395400902256, -0.00945511474661529, -0.0173088366115093,
-0.0234722454281989, -0.00843496782797389, 0.00411126372397877,
0.00514232707821764, -0.0244064888629038, -0.00242517133296467,
-0.0360933566863462, 0.00324318408281543, 0.0323075054431055,
-0.0104442014836706, -0.0172026175083965, -0.0363895991055015,
-0.00501270866313949, -0.0129769174470194, 0.0274967114857212,
-0.0287270777451619, -0.0349116967767477, -0.0346611225205287,
0.0106147227890789, 0.0168755631689262, 0.0185821310515422, 0.0148988557280134,
-0.0127399523063377, 0.0179753032367304, -0.031347395318225,
0.0350001817000285, -0.0353003207737673, 0.0131978022853285,
0.0249875719713326, -0.0305575295650028, -0.0168018358951807,
0.0213532112144586, -0.00852623315532692, 0.0245381241066288,
-0.00912864030623808, -0.0324811286939587, 0.0134715940635279,
-0.0202547063628025, -0.00609239005023614, -0.00165807486967184,
0.0303107045408338, 0.0286709560023621, -0.0184919195815176,
0.0199911695051473, -0.00764650066654198, 0.0157510780689865,
0.0232762155152299, 0.02512781821087, -0.012073342390582, -0.0295402881601732,
-0.0275835830430966, 0.0171486997737922, -0.0203507913614251,
0.013201795251416, 0.034927269633729, 0.0328357675212901, 0.0048464945353847,
-0.0191881907816604, -0.00355526138157584, 0.005553017476229,
-0.00242231001357548, 0.0153946457205992, -0.0380905832922924,
0.0224171436495613, 0.013538627067944, -0.0148735456360504, -0.0125422807502188,
0.0359924292006344, 0.0340351038166322, 0.0306350120891444, 0.0177828940506466,
0.00124352953230031, -0.0228206903245579, 0.0255212632984109,
-0.0273591940541659, 0.00625592653493397, 0.0286666797967348,
-0.00733952257775701, 0.0167026680481341, -0.038374092471879,
-0.0119873553684074, 0.00677329423880204, -0.0252972385182325,
-0.016179144725902, -0.0261611436009407, -0.0285537313382328,
-0.0195469742912985, 0.00436006517303176, -0.010714357336415,
-0.000432906395327303, 0.0106068593976181, 0.0296093172254507,
-0.0337998004042078, 0.0187188972497731, 0.00855671182095073,
-0.0151694928508345, -0.0109881577738468, -0.0178739975473657,
-0.000704518310576676, 0.00398454435523599, 0.0148272497326601,
0.00355560651127249, 0.00445064406758174, -0.0279602946850006,
0.0262030114387628, 0.0129270741148107, -0.0165299199007452,
0.0254715114450641, -0.0317279769902676, 0.0224395807806775,
0.0103868054324202, -0.0308185951100662, 0.0350148993769661,
0.000528936186851934, 0.0122761635670625, 0.00384168757271022,
0.00375322084818967, 0.0110217875377368, -0.0191556733159348,
-0.0321671853485797, -0.00956568700036034, -0.0120661898286827,
-0.0132415742739849, 0.0143733573821839, 0.0124698751052935,
-0.0335568120487779, 0.024708891032422, -0.0243256592579931,
-0.0315247674597893, -0.019198195967786, -0.0111344692128338,
-0.0359421342409495, -0.0363630967342481, -0.028733577684788,
-0.0358901437245123, 0.00473524975391105, -0.029025164149655,
-0.0264452015998028, 0.00214653245061636, -0.036271360251233,
-0.0363943703784887, 0.0134774912343454, -0.00787818214841187,
-0.0187712548314314, 0.0168316341643129, 0.0249135310968384,
-0.0132492762839422, -0.0374278673363384, 0.00071738634313457,
0.024806607254371, 0.0366155253596976, 0.00594507392470725, -0.0113398791225348,
-0.00287417547488585, -0.00427587472599931, 0.0190341659607366,
-0.0362638382706698, 0.0174794675406441, -0.00248267878649756,
0.0254753801637422, 0.0250235207387432, 0.00705134794028476,
-0.0078427932309173, 0.0200753008825611, -0.0321240164880361,
0.0304056290226616, 0.014392949775802, 0.02218606366097, -0.0196972215490323,
0.0269629499146622, 0.0321872066077497, 0.0367777274423093, -0.0204040204175748,
0.00640226197544485, 0.0213363773792144, -0.0194691974071506,
-0.0163687208878063, -0.011881973066926, 0.0219818078365177,
-0.0174866401517205, 0.0157367494826205, -0.0273788082216214,
-0.0300690375088155, 0.00275136686341837, 0.0351555725957081,
-0.0112867028481793, -0.0163949175091088, 0.0172440654992033,
-0.00370280358133838, 5.29788007400941e-05, -0.0340238394307997,
0.00859632576118223, 0.0283463731371705, 0.0339599835382775,
0.0284192159475759, 0.0166641623459291, -0.0206914936751872,
0.0140041706851032, -0.0298286651398335, 0.0147129203062411,
0.0216201151122339, 0.0382427312156092, -0.0171701872997079,
0.0329431159356237, 0.00131796772543341, -0.0268018073663861,
0.00368661471518688, -0.0238073195463046, -0.0042290701196529,
0.0195482185978442, -0.0200858800392598, 0.014213586783288, -0.0320571800050791,
-0.0256830026690103, -0.0265972835548595, -0.016381963405218,
-0.0273308475358877, -0.0161978171209898, 0.0314844071188755,
-0.0291271102988441, -0.0377649052318186, 0.0243894426069874,
-0.0146325347654521, -0.0161722121480294, 0.00463676853728481,
-0.0369022198792454, -0.00937015876594931, 0.0263622772331536,
-0.014110965699032, 0.0211719852473773, 0.0256509471427929, 0.0377125046773721,
-0.00132040962897241, -0.00990256879610941, -0.000143677882561459,
-0.0341689905326441, 0.029614741210537, -0.0285798273004498,
-0.0246745306772366, 0.0179143044777028, -0.0176373553313781,
0.0289283465476334, -0.0189462733505107, -0.0216605536197871,
0.0199099118071888, 0.00473240977719426, -0.0271342198304739,
0.0379348124682996, 0.0163818675428443, 0.0353282069873717, -0.0293826902201772,
0.0102273948743474, 0.0139822609587293, -0.0268588602820784,
0.0317004632494133, -0.00384395880673081, -0.0117602732504066,
0.0357028294367529, 0.0184278407047782, -0.0323926715628617,
-0.0312464614009671, 0.0225432241933141, 0.02738132322561, 0.0200769242371246,
0.0105901769731846, 0.00260022402187809, -0.0237289327252284,
-0.017320858554421, -0.0226955765966792, -0.00300221278958022,
-0.0194596954445913, -1.30411273799887e-06, -0.0075113178143464,
0.0274908472990338, -0.00988621033835225, -0.00979540639358572,
0.00237178073362447, -0.00824289721428417, 0.0128021333200671,
-0.00122434617063962, -0.0099537736039795, 0.0379909073890373,
-0.0141438654644787, 0.0238299546720274, 0.0364308148600068,
0.0303444704091735, -0.0369688617989514, -0.0174665428997017,
0.0142594366463833, -0.0343041380113363, -0.00424832047359087,
-0.00200741846859455, 0.00798740189113654, -0.00747808729137294,
0.0366658147142362, -0.0342915182580147, 0.0119895908875857,
0.0339957183400076, -0.034906117176991, -0.0237375474757701,
0.0240078198868129, 0.019406156183118, 0.00405564076733775, -0.0100069068336859,
-0.0339840526292939, 0.00621049596193247, 0.0169469089022465,
0.0332399327385519, 0.00121077169203199, 0.0104463088390231,
-0.0178610297719482, -0.00488712960032746, -0.0278954136615247,
0.0186022256447095, 0.0126448528972361, -0.0326166862286255,
-0.0198048185300455, -0.00914946608355269, 0.0373384947159793,
-0.0271220699752495, 0.0328937188413274, 0.0141516443475802,
-0.0101651613842323, 0.00803369567463175, 0.00520972617773339,
0.00802285968725569, -0.0083178041737061, 0.0347288812297024,
0.00211444690452888, -0.00865744867779314, -0.0328376913619973,
-0.0166304881540686, 0.00992448646310717, 0.0163140120730363,
-0.0137421477559023, 0.0174615027593449, 0.028806306308303, -0.017937490273118,
0.00668312811297365, 0.0327443119962327, -0.0187155320780352,
0.0134830736007448, 0.0349464368805941, -0.0144718935543951,
-0.0185141861509066, 0.0350402118223719, 0.0315278764835279,
0.0224359483045433, -0.0115412706274074, -0.00316886968796142,
-0.0296853131641913, 0.0189108177281823, -0.0384944418972731,
-0.0287252750977781, -0.0270007875624765, -0.033415732708443,
-0.0161683413633518, 0.0184709956782125, 0.0238043391894177,
-0.0158230910302978, 0.0218762981437147, -0.0297629304633569,
-0.0362482336152624, -0.0317951068451442, 0.0239305089484155,
0.0196882485002931, -0.0132109205373656, -0.0343937256932538,
0.00644743943656794, -0.0153193380471133, 0.00662402227652259,
0.0263093694309331, -0.0198411961809732, 0.0246579938428849,
-0.0133537286880612, 0.000797925324803219, 0.030047333789533,
0.00416817854108289, -0.0159979709118325, -0.0228272861624882,
-0.0374870827066898, 0.0170716072205175, -0.0268955788049474,
-0.0185736212358065, -2.71526580490159e-05, 0.0314965200196579,
-0.00323339803635143, 0.0269650907751359, -0.0281710704802908,
-0.000163487008502705, -0.00711474252208136, -0.000613971052765845,
-0.011574308203999, -0.032484558917731, -0.0314299858912267,
-0.00269935354912654, 0.0228059085657075, 0.0202592036303692,
-0.0165008626247663, -0.0287810815870296, 0.00403887539751828,
-0.013806537574539, -0.00298975123791955, -0.0305879528438766,
0.0172020392980333, 0.0309321592902951, 0.0210830072508752, -0.0357706767683197,
0.00204584176436998, -0.005642232900979, 0.0360328969555534,
0.0282391443711519, -0.00353919347519987, 0.000578186074197292,
0.00636305408494547, 0.0240075108492281, -0.0333025998909306,
0.0136769306571968, 0.0101976186844613, -0.0166912680429127,
-0.00290338184416294, -0.0291116915654205, -0.00882568937133997,
-0.00668780842809006, -0.0319869048547, 0.0251262151749618, -0.0242133344977722,
0.0307293135553692, -0.00524416380129754, 0.00763288828133605,
-0.0145127312130388, -0.00197274990222417, 0.0116635464445688,
-0.0130361866231821, 0.0210259553771652, 0.0162582840558328,
-0.0360871754495893, -0.0024329506651964, 0.00194713797672652,
-0.02993333928857, 0.00658227911727503, -0.0083360565960221,
-0.00157023892172612, -0.0372903111897502, -0.0106096899066679,
0.0210897623324487, 0.0265566711440496, -0.034422406472275, 0.0160052677164227,
-0.0266586073045805, -0.00848301237531938, -0.0171396845606994,
0.0323747488021944, -0.000174622565796599, -0.00118714301819913,
-0.0269887450493965, 0.0345725256739743, -0.0272087404300366,
0.0139215034186095, -0.0348685126637388, -0.0244070175431762,
0.030017627448393, -0.0107555995896086, 0.0302347931104526, 0.0144665058590379,
0.00967564739489928, -0.0309476350991987, 0.0246232169462834,
-0.0356769286126737, -0.0219887034599483, 0.0325596923645865,
0.0146490787499584, 0.0061486595030129, -0.00697772432581522,
-0.0379003233025409, -0.0289299358401541, -0.00742027936966159,
-0.00320465028301813, 0.0293499922040664, -0.015284746856913,
-0.0114841439285874, -0.00567422006956302, -0.0124006719930377,
-0.014273725637421, -0.0179683358961716, 0.035853828430837, 0.0328084855496418,
-0.0365841666322108, 0.0376127953588217, 0.0152135106395278,
-0.00112727024682798, 0.0351805918129161, 0.0222751364239678,
-0.00800840527254157, 0.0344744553037919, -0.0229332680529356,
0.0201308852499258, -0.0171125545567833, 0.0176867911047768,
-0.0198795355073456, 0.0254084125347342, 0.0204647985817585,
-0.0248605547932629, -0.0220263011464197, -0.0342643421014678,
0.0323029810839985, -0.0362475492304936, 0.0284431553836539,
0.0184413939485047, 0.00431965291265399, 0.00612456786565482,
0.0259100981171988, 0.00345923459024169, 0.0280587928787526,
0.0133213605851121, 0.0037852505583968, -0.0199645512762386,
-0.0372479919220693, -0.0201170188186504, 0.0292854511902016,
0.0217892980093136, 0.0343930104622152, 0.029331808660375, 0.0284123424033914,
-0.025235816391008, 0.0204227582240012, -0.00191819555235096,
0.0176154295620695, 0.0161627916756738, -0.00375548126715235,
0.00775163118557073, 0.0031536675251741, -0.0228226643959992,
-0.0107890796673484, 0.0292845252990816, -0.00618968128711916,
-0.0342839069005195, 0.018091334579587, -0.00574535756810568,
0.00672452353756875, -0.0308162267022114, -0.032628685409613,
0.0246821507837903, 0.0173702361025661, -0.0084214647431206,
-0.035054388207458, 0.0162963516942971, -0.0302308313679043,
-0.00591741786343977, 0.00326822051069699, -0.007957375625493,
0.00866911904149689, 0.000340676479786637, -0.00703245392633602,
-0.0100401843177248, -0.0256362184711453, 0.000919566251356152,
0.0264182682251371, -0.0120375708499923, 0.00498994267880917,
0.0291961013856623, -0.0219993862938881, 0.036041448522443, -0.0318848782033939,
-0.0187290182037279, 0.00803081800689921, -0.0164853822347336,
0.0334768932981044, -0.0270463635459077, 0.0198926992293354,
-0.0314411067529768, -0.0123559323441423, 0.00616995834030211,
-0.0377429884990118, -0.00835266189579852, 0.00377691529266536,
-0.00268253157092258, 0.00362320965967141, 0.0324493063202687,
0.0371678683859389, -0.0213315531268157, -0.0380411337395757,
-0.0340757279946562, 0.0298752697574347, 0.00339965395119041,
0.0190654878236074, -0.0304991473313794, -0.0274116749131121,
-0.0202425929769594, -0.0197150767784659, 0.0209601271019317,
0.0141131302196905, 0.00179244389774278, 0.01011067348768, 0.0216535355454683,
-0.0266584983635321, 0.0257989088841621, 0.0120921531537361,
-0.0134618657392915, -0.0245226366023719, 0.0377827611439303,
0.00724136175272987, 0.012030414389642, -0.023860021107886, 0.00336848321168683,
-0.00152026762330905, -0.0296779125027079, 0.011637588670766,
-0.0168011669425294, -0.00759104333119467, 0.0374924459154624,
0.0385618920539226, -0.00673179842459969, -0.029232759168148,
-0.0222288331548404, 0.00914459337897599, -0.00782638754261658,
0.0360346254605055, 0.0231012322438974, -0.0264854226384591,
-0.0215755833747424, 0.0201307258445956, -0.00153136685494334,
-0.0166688694831077, 0.0334847061174922, -0.0124794831703976,
0.00419270141540095, -0.0246433154917974, 0.0143821056501847,
0.00218504269802011, 0.0355006178019661, 0.0149358568616398,
0.0230802783027571, 0.0279870378799271, -0.0362780358367413,
0.0204401149187889, -0.0279070220632106, 0.00284222420079634,
0.0104750363635272, 0.0332036191875022, 0.0301095757951587, -0.0376089804639202,
-0.0372314200914837, 0.00979307181422599, 0.0101914492149185,
0.0231832746982668, -0.00589108600001782, 0.00315637015784159,
0.021156813014634, 0.0311967786418274, 0.0038931408574339, -0.0341333902184945,
-0.0203057940374874, -0.00311932055407204, -0.0189138025943376,
-0.00448324464038015, -0.0184333620074205, 0.0159614058478084,
-0.000446498354086654, 0.0334407609262224, -0.000514277633428574,
-0.0359707645377237, 0.0185041716228705, 0.00618537924751639,
0.00740833446158096, -0.0111362217013445, 0.0154741019568779,
0.023529577864632, -0.0366689226600621, 0.00556155339541845,
-0.0115421005483624, 0.0151211693037394, 0.00882374178062193,
-0.0324393527841289, 0.0244115242604446, -0.0117380339162797,
0.0200598967728205, 0.0270765582713485, 0.0222006687678862, 0.00580089156101458,
0.0219916313943453, -0.0248660399858281, 0.00554712776097469,
-0.0172326775666047, -0.0320164644020889, -0.0324331358864252,
-0.0254147286902368, 0.0123215411426872, 0.00402560999242589,
-0.0124797159097251, -0.00371454402733594, 0.00332367671423592,
-0.0185064645049721, 0.0140155398081243, -0.0176264920728095,
0.0190661745977495, 0.0260382133649848, -0.0225493525225203,
-0.00858922217245214, -0.0167054559436999, -0.000484351002853361,
0.0102251391443051, -0.00711067965335213, 0.0148655728903413,
0.0256097294300795, 0.00258000775032677, -0.0309470811778028,
-0.00156673647779971, 0.0254884129193332, -0.00993612163295969,
-0.0252976924991515, -0.0351247693705559, -0.000816601223107425,
0.0315029531825893, -0.0120889492736757, 0.00907744327730499,
-0.032987826840179, -0.0295146885947417, 0.0340448707660753,
-0.0371557487661671, 0.0144847953974828, -0.00497325182869099,
-0.0363119664640445, 0.0109527251110598, -0.0120259935460892,
-0.029829138109982, 0.0111691912975721, -0.0299496140104719,
-0.0357269501058944, -0.0117793241545558, 0.0230469531570096,
0.0066183418559935, -0.00265049550103024, 0.0293333071207814,
0.0194987097958569, 0.0176089172983076, 0.0132978175873775, 0.0346987330880575,
-0.0306003808724508, -0.0107018086355086, 0.00625405362560414,
-0.0382548088506795, -0.0113253843938839, 0.028535937657617,
0.0132490168123785, -0.0365907154372148, -0.037805508983396,
-0.0294726500514708, -0.0257433244090062, -0.0273112406084128,
0.000329015188515185, -0.00591595175838098, 0.038307160360096,
-0.018533524983516, -0.0167623197755311, 0.0347785429695435,
0.0310551490629651, -0.0261252458547335, 0.00100640938776545,
-0.0172650112841371, -0.0232091471552756, 0.00266039266233332,
0.012019383425815, 0.0372516080139298, -0.000896172814015299,
0.00903628235262819, -0.0306600742791407, -0.0317549407261424,
0.00951035538556985, -0.0195729889788944, -0.00633756910163909,
-0.0341009000598919, 0.000434984503313898, -0.00183310826394707,
-0.0118344455224648, -0.0167272337874491, -0.0174076656885445,
0.00452398762235418, -0.00816712287643925, 0.0270316183462646,
-0.0284666964591108, -0.0384155594519153, -0.0182484027075022,
-0.0342882939694729, 0.0223850259457435, 0.0377719714708719,
-0.0256808345553093, -0.025727319398839, -0.0311626000047661,
0.0156510108474735, 0.0382184668427333, -0.00867010736173019,
0.00190402881458402, 0.0232788752649352, -0.0354916943372134,
-0.0108833708754368, -0.036895726676574, 0.00796029709241353,
0.0366065701504145, 0.0362468852362409, 0.00593113099755719,
0.0261525039326493, 0.00858861117557623, -0.00202951289531775,
-0.0168851596464682, 0.0284809526995663, 0.020110208026953, -0.0268996131089888,
0.0179192869137973, 0.0145973457289115, 0.033189708885178, 0.00660832806453109,
0.0013520204263553, 0.026722876612572, 0.0119135082666948, 0.0119605079932138,
-0.0230269793080352, -0.0175226888236776, 0.0228692355983052,
0.0224760488684848, 0.0218010792183783, -0.0261394525830634,
0.0137416530837771, 0.00596749948622659, -0.034147189100571,
-0.0306670449791942, 0.0281174526749086, 0.000956750055262817,
-0.0368667148346174, -0.036541468298547, -0.000625441301967946,
-0.00499143988165073, -0.0272913421414699, 0.0139500358409062,
0.021115189467771, 0.0264271032471489, 0.0140401368428394, 0.0128305961810611,
-0.00215491981546395, -0.00247335538018495, -0.0251342075925786,
0.00430017028648406, -0.0170834039874561, -0.00423144526446238,
-0.0129361494395044, 0.0253865666567255, -0.0115602952843811,
0.00838692202306353, 0.0169209806452878, -0.0214015803033672,
-0.030571095043039, 0.00251858896463178)
test_that("Custom continue function is called as many times as expected with train and an RBM", {
keepiters.frame <- sys.frame()
assign("keepiters", c(), envir = keepiters.frame)
testf <- function(error, iter, batchsize, maxiters, layer) {
assign("keepiters", c(get("keepiters", envir = keepiters.frame), iter), envir = keepiters.frame)
print(get("keepiters", envir = keepiters.frame))
#browser()
return(TRUE)
}
rbm <- dbn[[1]]
# Frequency 1, 3:7
trained <- pretrain(rbm, f, batchsize=1, miniters = 3, maxiters = 7, continue.function = testf, continue.function.frequency = 1)
expect_equal(keepiters, 3:7)
#Frequency 2, 5:13
assign("keepiters", c(), envir = keepiters.frame)
trained <- pretrain(rbm, f, batchsize=1, miniters = 4, maxiters = 12, continue.function = testf, continue.function.frequency = 2)
expect_equal(keepiters, c(4, 6, 8, 10, 12))
# This one is run exactly once
assign("keepiters", c(), envir = keepiters.frame)
trained <- pretrain(rbm, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = testf, continue.function.frequency = 1)
expect_equal(keepiters, c(1))
# Function that returns FALSE when iter > 10
testf <- function(error, iter, batchsize, maxiters, layer) {
assign("keepiters", c(get("keepiters", envir = keepiters.frame), iter), envir = keepiters.frame)
print(get("keepiters", envir = keepiters.frame))
#browser()
return(iter <= 10)
}
#Frequency 3, exit immediately
assign("keepiters", c(), envir = keepiters.frame)
trained <- pretrain(rbm, f, batchsize=1, miniters = 3, maxiters = 20, continue.function = testf, continue.function.frequency = 3, continue.stop.limit = 1)
expect_equal(keepiters, c(3, 6, 9, 12))
#Frequency 3, keep going for 4 times
assign("keepiters", c(), envir = keepiters.frame)
trained <- pretrain(rbm, f, batchsize=1, miniters = 3, maxiters = 30, continue.function = testf, continue.function.frequency = 3, continue.stop.limit = 4)
expect_equal(keepiters, c(3, 6, 9, 12, 15, 18, 21))
})
test_that("Custom continue function is called as many times as expected with pretrain and a DBN", {
keepiters.frame <- sys.frame()
assign("keepiters", c(), envir = keepiters.frame)
testf <- function(error, iter, batchsize, maxiters, layer) {
assign("keepiters", c(get("keepiters", envir = keepiters.frame), iter), envir = keepiters.frame)
print(get("keepiters", envir = keepiters.frame))
#browser()
return(TRUE)
}
# Frequency 1, 3:7
trained <- pretrain(dbn, f, batchsize=1, miniters = 3, maxiters = 7, continue.function = testf, continue.function.frequency = 1)
expect_equal(keepiters, rep(3:7, 2))
#Frequency 2, 5:13
assign("keepiters", c(), envir = keepiters.frame)
trained <- pretrain(dbn, f, batchsize=1, miniters = 4, maxiters = 12, continue.function = testf, continue.function.frequency = 2)
expect_equal(keepiters, rep(c(4, 6, 8, 10, 12), 2))
# This one is run exactly once
assign("keepiters", c(), envir = keepiters.frame)
trained <- pretrain(dbn, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = testf, continue.function.frequency = 1)
expect_equal(keepiters, c(1, 1))
# Function that returns FALSE when iter > 10
testf <- function(error, iter, batchsize, maxiters, layer) {
assign("keepiters", c(get("keepiters", envir = keepiters.frame), iter), envir = keepiters.frame)
print(get("keepiters", envir = keepiters.frame))
#browser()
return(iter <= 10)
}
#Frequency 3, exit immediately
assign("keepiters", c(), envir = keepiters.frame)
trained <- pretrain(dbn, f, batchsize=1, miniters = 3, maxiters = 20, continue.function = testf, continue.function.frequency = 3, continue.stop.limit = 1)
expect_equal(keepiters, rep(c(3, 6, 9, 12), 2))
#Frequency 3, keep going for 4 times
assign("keepiters", c(), envir = keepiters.frame)
trained <- pretrain(dbn, f, batchsize=1, miniters = 3, maxiters = 30, continue.function = testf, continue.function.frequency = 3, continue.stop.limit = 4)
expect_equal(keepiters, rep(c(3, 6, 9, 12, 15, 18, 21), 2))
})
test_that("Custom continue function is called as many times as expected with train", {
keepiters.frame <- sys.frame()
assign("keepiters", c(), envir = keepiters.frame)
testf <- function(error, iter, batchsize, maxiters, layer) {
assign("keepiters", c(get("keepiters", envir = keepiters.frame), iter), envir = keepiters.frame)
print(get("keepiters", envir = keepiters.frame))
#browser()
return(TRUE)
}
unrolled <- unroll(dbn)
# Frequency 1, 3:7
trained <- train(unrolled, f, batchsize=1, miniters = 3, maxiters = 7, continue.function = testf, continue.function.frequency = 1)
expect_equal(keepiters, 3:7)
#Frequency 2, 5:13
assign("keepiters", c(), envir = keepiters.frame)
trained <- train(unrolled, f, batchsize=1, miniters = 4, maxiters = 12, continue.function = testf, continue.function.frequency = 2)
expect_equal(keepiters, c(4, 6, 8, 10, 12))
# This one is run exactly once
assign("keepiters", c(), envir = keepiters.frame)
trained <- train(unrolled, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = testf, continue.function.frequency = 1)
expect_equal(keepiters, c(1))
# Function that returns FALSE when iter > 10
testf <- function(error, iter, batchsize, maxiters, layer) {
assign("keepiters", c(get("keepiters", envir = keepiters.frame), iter), envir = keepiters.frame)
print(get("keepiters", envir = keepiters.frame))
#browser()
return(iter <= 10)
}
#Frequency 3, exit immediately
assign("keepiters", c(), envir = keepiters.frame)
trained <- train(unrolled, f, batchsize=1, miniters = 3, maxiters = 20, continue.function = testf, continue.function.frequency = 3, continue.stop.limit = 1)
expect_equal(keepiters, c(3, 6, 9, 12))
#Frequency 3, keep going for 4 times
assign("keepiters", c(), envir = keepiters.frame)
trained <- train(unrolled, f, batchsize=1, miniters = 3, maxiters = 30, continue.function = testf, continue.function.frequency = 3, continue.stop.limit = 4)
expect_equal(keepiters, c(3, 6, 9, 12, 15, 18, 21))
})
test_that("Continue functions run at all with pretrain and an RBM", {
rbm <- dbn[[1]]
trained <- pretrain(rbm, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.always, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- pretrain(rbm, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.exponential, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- pretrain(rbm, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.exponential.aic, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- pretrain(rbm, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.exponential.bic, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- pretrain(rbm, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.random, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
1
})
test_that("Continue functions run at all with pretrain and a DBN", {
trained <- pretrain(dbn, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.always, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- pretrain(dbn, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.exponential, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- pretrain(dbn, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.exponential.aic, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- pretrain(dbn, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.exponential.bic, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- pretrain(dbn, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.random, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
1
})
test_that("Continue functions run at all with train", {
unrolled <- unroll(dbn)
trained <- train(unrolled, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.always, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- train(unrolled, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.exponential, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- train(unrolled, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.exponential.aic, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- train(unrolled, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.exponential.bic, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
trained <- train(unrolled, f, batchsize=1, miniters = 1, maxiters = 1, continue.function = continue.function.random, continue.function.frequency = 1)
expect_false(is(trained, "try-error"))
1
})
test_that("continue.function.always works", {
expect_true(continue.function.always(error, NA, NA, NA, NA))
})
test_that("continue.function.random returns TRUE and FALSE results", {
# Test 100 times.
# P(fail) = 1/(2^100) = 7.9e-31, so really never
continues <- sapply(1:100, function(x) continue.function.random(NA, NA, NA, NA, NA))
expect_identical(length(unique(continues)), 2L)
})
test_that("continue.function.exponential stops with a flat line", {
expect_false(continue.function.exponential(error_converged, NA, NA, NA, NA))
expect_false(continue.function.exponential.bic(error_converged, NA, NA, NA, NA))
expect_false(continue.function.exponential.aic(error_converged, NA, NA, NA, NA))
})
test_that("continue.function.exponential continues with a straight line going down", {
error <- jitter((1000:1) / 500)
expect_true(continue.function.exponential(error, NA, NA, NA, NA))
expect_true(continue.function.exponential.bic(error, NA, NA, NA, NA))
expect_true(continue.function.exponential.aic(error, NA, NA, NA, NA))
})
test_that("continue.function.exponential continues with an exponential line at the start", {
error <- jitter(exp(-(1:10)))
expect_true(continue.function.exponential(error, NA, NA, NA, NA))
expect_true(continue.function.exponential.bic(error, NA, NA, NA, NA))
expect_true(continue.function.exponential.aic(error, NA, NA, NA, NA))
})
test_that("continue.function.exponential continues with an exponential line going down", {
error <- jitter(exp(-(1:50 * 0.05)))
expect_true(continue.function.exponential(error, NA, NA, NA, NA))
expect_true(continue.function.exponential.bic(error, NA, NA, NA, NA))
expect_true(continue.function.exponential.aic(error, NA, NA, NA, NA))
})
test_that("continue.function.exponential stops with an exponential line going flat", {
expect_false(continue.function.exponential(error_converged, NA, NA, NA, NA))
expect_false(continue.function.exponential.bic(error_converged, NA, NA, NA, NA))
expect_false(continue.function.exponential.aic(error_converged, NA, NA, NA, NA))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.