tests/testthat/test-continue_functions.R

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))
})
xrobin/DeepLearning documentation built on Sept. 18, 2020, 5:23 a.m.