diff --git a/src/data/Swimmer_v5_log.csv b/src/data/Swimmer_v5_log.csv index d63b939..a94774d 100644 --- a/src/data/Swimmer_v5_log.csv +++ b/src/data/Swimmer_v5_log.csv @@ -162,9 +162,7 @@ path;env;llm;llm_param;algo;algo_param;total_timesteps;reward_function;rewards;m reward -= 20 return reward";-0.1322758896347446,-0.21018593352650097,-0.14636113734993558,-0.14228662251907825,-0.20629039874819396,-0.18522003748840052,-0.2114003687667611,-0.24031410439040296,-0.19434448682860592,-0.2418553818394635,-0.2886327477341352,-0.3118135468374735,-0.2087057721449776,-0.23391690398433865,-0.2760787530781781,-0.17459172575703286,-0.18924886134284127,-0.11773209051419072,-0.11850732345383767,-0.12678746201722796,-0.11733326848100524,-0.10075923304692125,-0.08287658026877191,-0.09301628236699483,-0.09208074522998567,-0.08169993324291655,-0.07429454582614652,-0.07056436017795506,-0.0686482268038713,-0.08110723398845178,-0.07491910253175814,-0.05197538901263104,-0.05197269255224402,-0.04835948134780613,-0.04039697315166466,-0.04333771878646521,-0.041965682711116614,-0.04829376937736388,-0.04368401897220308,-0.04310199799901436,-0.042164005942664576,-0.03520226702275207,-0.034264829786836384,-0.037602393928655595,-0.04044298615449922,-0.033348464539514136,-0.03119062747924044,-0.029757670139254015,-0.0315397283828142,-0.029838447562525634,-0.027781999738591433,-0.02737063510225095,-0.026516600082789377,-0.026438341124176826,-0.024399672653936836,-0.02179206114350508,-0.0207896755615833,-0.025734494795701394,-0.02451222360611078,-0.019174471903266505,-0.02095516689130111,-0.014178064796989444,-0.015352454618682093,-0.017110931056710237,-0.012816677969876417,-0.012764412211309799,-0.013380847209774005,-0.007913772264175051,-0.0073391228890584415,-0.004971990454594951,-0.005943184098950121,-0.0041229694731143305,-0.0016963949249983214,-0.0026946057343242734,-0.004083222205243691,-0.003590543775520772,-0.0012179029562588005,0.0027269153764165432,0.0010467488134011146,0.0025528178565764176,0.0023072801781105325,0.0017272781998451897,0.004140850266530021,0.005366689247992659,0.005537917178758591,0.005291370796517605,0.005695995321509775,0.004681342223333643,0.0061799095842948615,0.00803521086319034,0.0062667798436005775,0.006905729312779568,0.008019373073452416,0.0060067067749903745,0.00780450162153488,0.009842365893249022,0.009248276094896549,0.008280609499518584,0.011268332970749743,0.010167250715055236,0.010578293154519853,0.011517927561071251,0.011349960163147226,0.009858535571434757,0.011186064004959504,0.01202401421913026,0.010989445063467064,0.008879900185911883,0.010940417855000627,0.012052832567356408,0.01172620473891106,0.012950595345142554,0.011452103882865567,0.01330823903932796,0.011869359149440328,0.011865433997244006,0.012533115659864843,0.012067643513571069,0.013552459842668306,0.01229266258888694,0.014312782477317064,0.012434819841888472,0.01339922583553776,0.011341462428890597,0.014102800063347694,0.01487531193272716,0.01451053193615176,0.013337087775796385,0.014964912642330764,0.015561447253546324,0.013552027417632308,0.01526871543583734,0.012784492909529925,0.014642844691680826,0.014639369479700346,0.014267256788280863,0.015465968399137463,0.014591282409447725,0.014413854305692465,0.015712188928101507,0.016187174878460955,0.015376719088308512,0.013955745882361108,0.01502693217638668,0.015288212047070425,0.016376675220465525,0.015148496994352957,0.014793650886384797,0.015898736963455465,0.016435170728320098,0.014156728153579346,0.01637129510117627,0.014406325397761462,0.016256875998871673,0.01538251191596851,0.01531446441261922,0.013966837110807482,0.015973996692511913,0.01614564194198545,0.016244901960297504,0.015944451078816205,0.01653901906009641,0.01520733932077547,0.013965721641128293,0.013946466053561283,0.014885100907550108,0.01368754120444416,0.017073442807347378,0.016958703956902525,0.017345581099794512,0.013884012300824094,0.015388951751235764,0.015661049925609214,0.014095522679997887,0.014131586147446768,0.014455878497651549,0.017457776604747198,0.014118121865488057,0.01698099144511645,0.014412630441531689,0.016245746948256787,0.01493357833820696,0.01536191726087049,0.017756096625116912,0.015411307709574839,0.015697978815651402,0.016286674070979505,0.015524429458592778,0.015355213817277894,0.016610797415188366,0.015854275277865287,0.01569750107044136,0.01545739987189615,0.014384065428905895,0.016687334239045826,0.014925119632050962,0.01604640869460685,0.01612936677440026,0.015178154600811358,0.016563571222594137,0.01601911061146796,0.016785540849064313,0.013198907232119108,0.013690567490129717,0.012602044634684742,0.01650439663720606,0.01278189518757979,0.013396794870852328,0.013995904111712285,0.012913054775430515,0.01353183880720211,0.014276476323282588,0.01459977187257241,0.013886918775242367,0.014205520391890308,0.015999141328314634,0.016608412791231625,0.015589576094143047,0.0170017578959073,0.013531397258873515,0.012946322334094226,0.014293409905440568,0.01560420198993326,0.015514633151466678,0.014312654111545963,0.017175125709084586,0.01560634796636608,0.015492044711331908,0.016364751995177812,0.01750788271525819,0.01722641300525961,0.01644711513160513,0.014961582279187948,0.016780957496803823,0.015732904640234007,0.015226969964813436,0.014735210680964905,0.016591748642653146,0.01527738338346209,0.01581495296733637,0.018076033608030083,0.0164316144058536,0.016573846373815482,0.016810171503120405,0.015819019115055375,0.016506218801701406,0.017322824407946913,0.016731983250051416,0.017882559439092446,0.015075705632510409,0.016411820955344016;-0.01462681053156719;0.06140130421003739;0.0 -<<<<<<< HEAD data/model/Swimmer-v5_923076_1.pth;Swimmer-v5;qwen2.5-coder:32b_llama3.2-vision;{'temperature': 0.9, 'seed': 923076};PPO;{'policy': 'MlpPolicy', 'verbose': 0, 'device': 'cpu', 'gamma': 0.9999, 'seed': 923076};500000;"def reward_func(observations: np.ndarray, is_success: bool, is_failure: bool) -> float: -======= ;Swimmer-v5;qwen2.5-coder_llama3.2-vision;{'temperature': 0.9, 'seed': 656454};PPO;{'policy': 'MlpPolicy', 'verbose': 0, 'device': 'cpu', 'seed': 656454};500;"def reward_func(observations:np.ndarray, is_success:bool, is_failure:bool) -> float: """"""Reward function for Swimmer-v5 @@ -599,7 +597,6 @@ data/model/Swimmer-v5_923076_1.pth;Swimmer-v5;qwen2.5-coder:32b_llama3.2-vision; return reward";0.004637868528356022,0.007205367889337384,0.0034192692234692925,0.0082664629199301,-0.0005463546564451173,0.002837417947353999,0.0006615114062722201,0.00729897220462519,0.008110792512872183,0.005108357118085402,0.008961357664519517,0.008930844302582019,0.009459758866761729,0.01190632324559046,0.006081568701397916,0.004474590751416107,0.011949476107614383,0.01598002548894811,0.015074349663113783,0.008136837943120753,0.012629215950193845,0.009294634715615029,0.023694884346603773,0.016699679001269223,0.020989235020914494,0.023607270057305885,0.01829641701814667,0.024446133295088494,0.029510777399149143,0.030253373029008577,0.02944805447619399,0.027752661088589415,0.03200444492319536,0.023607088203901585,0.031152633786539822,0.027375120160828475,0.03232075928666416,0.03279243965693737,0.031921084489390635,0.034123250021963,0.03201548609328305,0.03468782744679398,0.03839545699181823,0.03654781080445709,0.03805185875226429,0.03707345126359504,0.034452067823558134,0.03426904763864573,0.03750664949996694,0.038422979629693925,0.03653358149857488,0.03627687395384329,0.03760171026101833,0.03638557624870458,0.03759413590757611,0.038242686264104764,0.03496189574701708,0.03974419037314485,0.039782404547697076,0.039485073120060506,0.03447213939721807,0.036901991888514715,0.03777740734940413,0.034873712031653334,0.03877526400664597,0.030954205020177063,0.029865318563349313,0.03522747232147355,0.03999582021903754,0.038253063623724146,0.029101631559051835,0.037475683280078775,0.04219521624826149,0.038858528248101765,0.039170520210823664,0.03773704530860081,0.024181762722796495,0.0353150702652841,0.035032121764236715,0.04091676108438971,0.03742104400373942,0.03930051144786289,0.04251109581603242,0.04132810208108804,0.038138080253425674,0.04102323111863171,0.04095505143791787,0.03856251927365622,0.03950344937456319,0.040425370203216106,0.036199674280133355,0.01612582972283753,0.03427432521364115,0.04256912245082701,0.03200654843953636,0.018253261695730324,0.031086820323205616,0.028588843684282852,0.04175102811255904,0.025801899968700383,0.028308231883179484,0.02295130435924509,0.040332021154154116,0.03862471535645659,0.027790065388920614,0.03764124654001991,0.03577250946687983,0.04427576073163975,0.03133412161256489,0.04419534362169462,0.045369999148620374,0.04485428382263234,0.042777241854834266,0.03576745138771661,0.0243789446155249,0.04294416963929193,0.04386402591677674,0.0441987610530738,0.04268724774803786,0.044019271174434306,0.03986428084561564,0.0430056434006834,0.04408040770498228,0.04217016053690624,0.043446882228531374,0.04496383090217802,0.04364012346779771,0.04289540825333511,0.03498167746994244,0.04262281712638588,0.043991548723799546,0.04348808381903075,0.04163324005740112,0.04368652373292182,0.0377630385033004,0.04342988233138595,0.0414724916335444,0.032323032636852794,0.04451641437466586,0.04300280445083338,0.04194553279203961,0.04297334561504047,0.04250466030817293,0.042915573901971975,0.040131725319968496,0.04068361470474308,0.04066424687776736,0.04146564764740155,0.04049882659018277,0.042923061625210646,0.04174035709161983,0.03951984559583473,0.04389038455720573,0.04415784174261378,0.0413845467773228,0.0426652094889525,0.03376542460359853,0.03902387793419341,0.03963232759655305,0.040986589081335685,0.04271240295937595,0.04109185394503114,0.0422405506623468,0.042133789674231835,0.039412591134348425,0.0413821740619931,0.041645192778602944,0.043825412163565156,0.044834536159292136,0.042075036160398274,0.04420668840225248,0.04506397226413459,0.04438793933887224,0.04288630111113844,0.04421257418815815,0.04373729656193918,0.044043212174119675,0.04560296715726278,0.04356908005556896,0.04271448026465444,0.04565874719417368,0.04537814639458712,0.04665314272409453,0.04651823239636627,0.044820419071739934,0.04174092654678469,0.04580091815333068,0.04678005173229869,0.047330694755787654,0.04750132987275688,0.04796760710671699,0.047940555958297576,0.04761153873583163,0.04766829281259316,0.047485245932710314,0.047680034019903526,0.04769923283090658,0.048200592223388315,0.046709435043624396,0.049176097316769286,0.0488906811058832,0.04816432145240818,0.048902471589013806,0.0476525041055087,0.04715681237448811,0.048503879938619175,0.047819456354903506,0.04756683334800286,0.048905199815053216,0.047882754618538456,0.04908582458079478,0.048570766701716145,0.049037451597529536,0.048892988560907985,0.048754988083553934,0.04778272316321547,0.048155352351919326,0.04765422270127478,0.04834566885599371,0.04851413170600386,0.04862904474574713,0.048540026092248285,0.04722863133964052,0.04957091317692341,0.04854872952522162,0.048629873276153354,0.048786616722980035,0.04862404756134631,0.049226852335387455,0.049906906195649366,0.04825671366043649,0.047692062625711504,0.04331198312328003,0.049180174040117784,0.04988493943070173,0.04900998186745614,0.04960162760059769,0.048758213840391806,0.04986807516502417,0.048622110668120354,0.04356876880324762,0.048396259661658655,0.04869308100256206,0.048419550508366535,0.04921537475939372,0.04895907032557074,0.049623470267791285,0.049264712842351996,0.048392991257247164,0.048614976004558275,0.049574969501010036,0.0486787391856726,0.050212571357167904,0.04935466384029234,0.04997867568959763,0.049578204322474846,0.04849449789732235,0.04909387168321031,0.04874725043321279,0.049726971971522635,0.049508843160173004,0.04989421989312982,0.049781854260347244,0.048690618850396446,0.04939094356113503,0.04991159615879576,0.04967307462373934,0.04884898176430069,0.04915017192690673,0.05015353318492097,0.04958967635451858,0.0491394901921907,0.04877163191677492,0.0487743102197281,0.04864455714034013,0.0486040796479785,0.04977713983215775,0.04159763733341293,0.04957550764769668,0.04905639928941476,0.04944139287509803,0.04969760563335336,0.05010721561806106,0.04836755869852254,0.048731294215888475,0.04897953441639252,0.04946723936885436,0.04886351195039036,0.04888486075326998,0.04949886679395745,0.03932215934596767,0.04947593842690734,0.049134326554074674,0.04817052469660199,0.04981372573761693,0.049713780154197855,0.04878567226986651,0.04858358669767738,0.04981918537012682,0.04853396062821829,0.047915100929660115,0.04893184401882784,0.048608864083798727,0.048590593712676475,0.04854371299542425,0.04852487891194354,0.04971008171071801,0.04850732832424441,0.049657234001932074,0.049433261005163195,0.03804697610608245,0.049438651213383776,0.0484082381309639,0.04853137401323943,0.04877356977960729,0.048418436510954455,0.04939995335249245,0.04909135323411752,0.04912852671788215,0.04983806699856442,0.04873714051776327,0.048976777684458676,0.0493345337579429,0.04892997838595168,0.04988207587153204,0.0488022526357495,0.05005505078868856,0.04861041229362551,0.04874227184634889,0.04834321695339695,0.050371233846444034,0.04902095492788511,0.04984314085098499,0.049237540501824585,0.0482928879597745,0.04880693735522764,0.04975689753875968,0.04953139785451058,0.04845660548691419,0.04891839755751269,0.04863812222422916,0.049716706690196975,0.04867954519525201,0.04856754803969421,0.048976490680781457,0.0488928176097989,0.04890950582029141,0.0494605348038883,0.04888958681479221,0.04950805430120357,0.04919541279060232,0.04986739829607177,0.04884361941454434,0.04941270033131471,0.049078420381250785,0.049294736821741854,0.050171283466824444,0.04825137571707495,0.04739836844321824,0.048296038755026686,0.04868458457540793,0.04783030141990179,0.0493265015291261,0.04894620185548709,0.04908338655777563,0.047467461917433215,0.04912479452388607,0.04933999703765449,0.048890260781727334,0.049560046179851096,0.048644951526168406,0.04848233665197244,0.04906859613145427,0.048533504720547634,0.04872832802747312,0.049432486792774746,0.049055927984305116,0.049779000127409746,0.0493368696028118,0.04937042039098564,0.04844888582114905,0.04912672366330151,0.04897058032928142,0.04946887676688033,0.048707506666842766,0.04840427276453982,0.04877948467695583,0.04909931318015175,0.04978719412941305,0.048907892027412726,0.049473394503322776,0.04946269915364435,0.049894949231842074,0.04959777755625912,0.04876398095302491,0.04988042274701477,0.048778942142041586,0.04998616340779311,0.049810426274036715,0.04920373985457571,0.04917890854094144,0.048561160829413676,0.04930363686575529,0.04953591716531853,0.04987951242821914,0.04859186342534472,0.049428899995537956,0.04893380243094375,0.04899978934401131,0.04893559993357787,0.049294883838446074,0.04866196866246571,0.04997303055335756,0.0500942203313555,0.04903125845877236,0.05057570184897071,0.049313504647484956,0.048948277317977296,0.049788515840513387,0.04910830463177624,0.04893122729927066,0.05004401430686124,0.04952382645331491,0.05012611693191064,0.04946558418562396,0.04849960747792101,0.04976168674134877,0.04935609072668157,0.04965813674453073,0.048749213528421396,0.04997789647983088,0.049297810406335955,0.050194108168444544,0.04968761811752229,0.04983087173875499,0.049914051871060974,0.050125597930829144,0.04994384495274292,0.04975831967736418,0.050102480082327455,0.05053281339666561,0.04941894508387195,0.048186500738359776,0.049302363314923506,0.04943545204219512,0.04880854035959811,0.049212401950916335,0.04838074466008828,0.04913651056889513,0.04965758302294518,0.049807002720797,0.04830796034322367,0.050052535404033455,0.049527259934944536,0.05006655267235347,0.04987494914499346,0.0494856016840147,0.05029327562053912,0.0496353020269913,0.04912359463826446,0.04932126635205973,0.049796435068699046,0.050126746561485365,0.04999959086013544,0.0495330074346602,0.048570833024167634,0.049362093419514,0.04942891606331341,0.04989444957023192,0.04970705368071562,0.04959185922526577,0.049598147519948496,0.04961970073319459,0.049638282125024885,0.049307970189057575,0.049014562519203206,0.04995662945960085,0.050333100742296646,0.04957591519816007,0.05030936721313509,0.04923257438444069,0.04868659408653438,0.0491939075940679,0.049699681616086844,0.05016517773100869,0.04952937614596096,0.04960769407481271,0.05033883751628043,0.05050838684565646,0.050117334169503376,0.050387901797312,0.05080279231707015,0.04938634180937156,0.04879562834477203,0.050071487976604316,0.04939674399121625,0.04976954678764286,0.04942547864540979,0.04972829456183336,0.04991743898701395,0.04964791853926176;0.04352483563463064;0.010079517201251414;0.65 ;Swimmer-v5;qwen2.5-coder:32b;{'temperature': 0.9, 'seed': 672962};PPO;{'policy': 'MlpPolicy', 'verbose': 0, 'device': 'cpu', 'seed': 672962};500000;"def reward_func(observations:np.ndarray, is_success:bool, is_failure:bool) -> float: ->>>>>>> e047f7711f45984ca0a4af1d2f3cbf089b9a0770 """"""Reward function for Swimmer-v5 Args: @@ -611,7 +608,6 @@ data/model/Swimmer-v5_923076_1.pth;Swimmer-v5;qwen2.5-coder:32b_llama3.2-vision; float: The reward for the current step """""" angle_front_end = observations[0] -<<<<<<< HEAD velocity_x = observations[3] angle_reward = -abs(angle_front_end) # Reward for aligning front end with forward direction @@ -622,12 +618,11 @@ data/model/Swimmer-v5_923076_1.pth;Swimmer-v5;qwen2.5-coder:32b_llama3.2-vision; elif is_failure: return -50.0 else: - return velocity_reward + angle_reward + 0.1 * (velocity_x > 0)";-0.2212205943515692,-0.20194192794208,-0.15713361447550206,-0.2772421753234487,-0.13965347214190113,-0.0989335055879042,-0.07250071949673254,-0.09064501883043365,-0.05453838353718844,-0.04375985573343059,-0.050737323567162575,-0.0753468192723804,-0.017050106060630666,-0.011379368902630018,0.00023436997462731498,-0.005524849918498498,-0.00380138788532807,0.006022669565948348,0.00811473961269379,0.0058194625295172235,0.016990270093961424,0.009214669013681218,0.01664036336214808,0.007308789593729972,0.017299749719501302,0.016901826729604375,0.014238984922348591,0.020924403068354736,0.013255574567940803,0.013156300027501483,0.02282586984559071,0.017430757309418166,0.019024904469622995,0.03227713239599478,0.007835059932545801,0.013339957955161907,0.025833402212975032,0.03358641104074675,0.020335674366527477,0.028316899083389982,0.01270759858962894,0.03496986527435646,0.02668352357526767,0.038492406025618556,0.035508245295873465,0.029251145617781908,0.03550347092757544,0.024827534352645772,0.03451501389884209,0.04204047038532266,0.041961274088102275,0.04939668383715107,0.05098787285264213,0.050731247673903586,0.049778364592749806,0.04571300664935207,0.05408935087917231,0.05325258134462011,0.05214147319111491,0.054572260500657825,0.05893081592644443,0.05731482161915174,0.0585455049783887,0.06033116620014624,0.06293828603132286,0.05983276313251787,0.10186552653706295,0.10666957066172049,0.10444853633409662,0.1026970512679649,0.10573077973047547,0.10393588299726314,0.10498051087226465,0.10414254897679304,0.10841430797908232,0.10599403642462224,0.1048460460779054,0.1088209038321222,0.10783406195155715,0.10670908753115121,0.10912550286493075,0.1075318470429118,0.10708466083988392,0.1113216928183473,0.10864412412282048,0.10553619427206001,0.10613678963887883,0.10786088660999171,0.10747938918856019,0.0627974698081202,0.10823664700551616,0.10784505888210458,0.1080693884012696,0.10577606744183853,0.10982214445498147,0.10701778647499827,0.10823168142935072,0.11122564325465847,0.1112994923199186,0.10981803947336584,0.10630364369231349,0.10717269138537495,0.10660726319252742,0.11011644906715858,0.11201838077875895,0.10805640107473792,0.11035980251586872,0.10730170204015,0.11059222241634845,0.10947459164020933,0.11099907381661037,0.10980162639776479,0.107030757218755,0.10947622021004713,0.11209297655661143,0.10533795767360797,0.10628345885855742,0.10386290753848444,0.10466427761556159,0.10759929579644617,0.10572674354778804,0.10898685121359505,0.10781716836017376,0.10860244078139035,0.10679799426191688,0.10935046135844802;0.05119776652646713;0.07290608094808895;0.4 + return velocity_reward + angle_reward + 0.1 * (velocity_x > 0)";-0.2212205943515692,-0.20194192794208,-0.15713361447550206,-0.2772421753234487,-0.13965347214190113,-0.0989335055879042,-0.07250071949673254,-0.09064501883043365,-0.05453838353718844,-0.04375985573343059,-0.050737323567162575,-0.0753468192723804,-0.017050106060630666,-0.011379368902630018,0.00023436997462731498,-0.005524849918498498,-0.00380138788532807,0.006022669565948348,0.00811473961269379,0.0058194625295172235,0.016990270093961424,0.009214669013681218,0.01664036336214808,0.007308789593729972,0.017299749719501302,0.016901826729604375,0.014238984922348591,0.020924403068354736,0.013255574567940803,0.013156300027501483,0.02282586984559071,0.017430757309418166,0.019024904469622995,0.03227713239599478,0.007835059932545801,0.013339957955161907,0.025833402212975032,0.03358641104074675,0.020335674366527477,0.028316899083389982,0.01270759858962894,0.03496986527435646,0.02668352357526767,0.038492406025618556,0.035508245295873465,0.029251145617781908,0.03550347092757544,0.024827534352645772,0.03451501389884209,0.04204047038532266,0.041961274088102275,0.04939668383715107,0.05098787285264213,0.050731247673903586,0.049778364592749806,0.04571300664935207,0.05408935087917231,0.05325258134462011,0.05214147319111491,0.054572260500657825,0.05893081592644443,0.05731482161915174,0.0585455049783887,0.06033116620014624,0.06293828603132286,0.05983276313251787,0.10186552653706295,0.10666957066172049,0.10444853633409662,0.1026970512679649,0.10573077973047547,0.10393588299726314,0.10498051087226465,0.10414254897679304,0.10841430797908232,0.10599403642462224,0.1048460460779054,0.1088209038321222,0.10783406195155715,0.10670908753115121,0.10912550286493075,0.1075318470429118,0.10708466083988392,0.1113216928183473,0.10864412412282048,0.10553619427206001,0.10613678963887883,0.10786088660999171,0.10747938918856019,0.0627974698081202,0.10823664700551616,0.10784505888210458,0.1080693884012696,0.10577606744183853,0.10982214445498147,0.10701778647499827,0.10823168142935072,0.11122564325465847,0.1112994923199186,0.10981803947336584,0.10630364369231349,0.10717269138537495,0.10660726319252742,0.11011644906715858,0.11201838077875895,0.10805640107473792,0.11035980251586872,0.10730170204015,0.11059222241634845,0.10947459164020933,0.11099907381661037,0.10980162639776479,0.107030757218755,0.10947622021004713,0.11209297655661143,0.10533795767360797,0.10628345885855742,0.10386290753848444,0.10466427761556159,0.10759929579644617,0.10572674354778804,0.10898685121359505,0.10781716836017376,0.10860244078139035,0.10679799426191688,0.10935046135844802;0.05119776652646713;0.07290608094808895;0.4 data/model/Swimmer-v5_923076_2.pth;Swimmer-v5;qwen2.5-coder:32b_llama3.2-vision;{'temperature': 0.9, 'seed': 923076};PPO;{'policy': 'MlpPolicy', 'verbose': 0, 'device': 'cpu', 'gamma': 0.9999, 'seed': 923076};500000;"import numpy as np def improved_reward_func(observations: np.ndarray, is_success: bool, is_failure: bool) -> float: """"""Improved reward function for Swimmer-v5 -======= x_velocity = observations[3] y_velocity = observations[4] angular_velocities = observations[5:] @@ -647,7 +642,6 @@ def improved_reward_func(observations: np.ndarray, is_success: bool, is_failure: return reward";-0.2907772246636664,-0.31819004121426964,-0.2616805366984962,-0.2204740621313927,-0.19103383640641536,-0.1746441538360284,-0.24611387267463383,-0.22076655996123273,-0.21683775186596768,-0.12290319072664424,-0.12131975598947069,-0.13206017113204482,-0.20267413093940728,-0.0993391116545594,-0.09616384060630341,-0.09326383796818022,-0.21902461492571793,-0.07857108604743093,-0.06891063709957011,-0.06863279133657355,-0.07022756693573957,-0.05690927027761122,-0.055949421932139504,-0.05065978245071202,-0.051095306218240134,-0.04598938172884298,-0.04143246039530417,-0.03772979270157557,-0.042989029175752244,-0.038168633733404136,-0.03690857380893882,-0.035601015655548664,-0.034640914898375466,-0.034531439324600136,-0.03337441562349231,-0.03290207171794799,-0.03826542175102133,-0.02959531147683139,-0.030436982472848775,-0.03273116064062488,-0.03097838163925559,-0.02944127630268291,-0.03445893368372703,-0.030793324842359783,-0.037579501773282294,-0.03142952564140902,-0.027780736406077342,-0.02784338014126731,-0.029335020803419248,-0.0302823529527527,-0.02988807768361292,-0.029533867832186554,-0.028926363255538115,-0.02609272815928388,-0.02930596836137053,-0.02714181545993476,-0.02568402703030635,-0.026139671472317133,-0.026777195233523912,-0.029327295367441872,-0.027052501556900723,-0.030876154491659227,-0.02592789251559218,-0.025954451820058042,-0.03228766421774629,-0.026677930302029074,-0.026499095887748216,-0.031154115369526742,-0.02770151858823265,-0.026861637152033963,-0.02571939699968997,-0.02707510498468084,-0.028741758688088793,-0.028020034585516395,-0.02915927608939794,-0.030974045482076225,-0.029411826943299513,-0.026976535860654138,-0.02615334783095336,-0.030379622065106957,-0.02785858227722265,-0.026764912432212285,-0.02681914562983823,-0.026028760510145663,-0.030728754193702797,-0.025455718303041417,-0.033171758060527835,-0.026654437629152962,-0.02707524610891322,-0.032437901277582205,-0.027612639697185717,-0.026827222890440906,-0.032500933734420166,-0.026701276078654492,-0.02617178199339382,-0.025087049665686343,-0.029247676706079428,-0.02597700371986497,-0.028633632571940137,-0.026702725584227253,-0.028558337127414127,-0.027066348478993793,-0.034627825385368106,-0.02884059459054622,-0.028459391863350485,-0.028738835851352902,-0.03204204861866617,-0.02678378871926076,-0.028331602858610607,-0.028458838499549912,-0.02759903999446575,-0.02921411434952951,-0.029628273838706275,-0.03255740022501025,-0.02699322701467974,-0.028183216639914632,-0.026042624455849202,-0.025831769126406154,-0.02746733946897512,-0.028182061881233463,-0.028841746270669075,-0.027468673681982105,-0.025619200118407764,-0.0286136052254938,-0.027254919407495266,-0.025332790337418087,-0.02759247754757821,-0.024357726705459447,-0.03186273054746332,-0.02634122644869418,-0.028007267436556783,-0.02732798329422767,-0.026840556610736144,-0.02929072413903498,-0.02747218642099505,-0.03136174947417653,-0.030732039905565754,-0.028824915831747563,-0.03168584393312648,-0.03004980671159263,-0.029213933748821364,-0.025788203458636996,-0.034021114436171215,-0.026325888078178032,-0.02577699411737182,-0.027832220631797383,-0.026498419102168266,-0.02658062037166806,-0.025839924408222997,-0.02932175252606935,-0.03401855674690236,-0.026901078655528397,-0.026204691475923542,-0.026311911704379104,-0.026454608638694376,-0.026983581796424155,-0.025772120311150875,-0.030253446443651865,-0.026158830128893088,-0.02701249504455969,-0.025968051503467388,-0.02629821704150414,-0.025707668297839235,-0.0259636554521748,-0.02997119141718568,-0.02679097563443351,-0.02714283639621139,-0.029871894524388116,-0.027008029437902616,-0.03231290384898725,-0.02577352030968101,-0.026565802120793344,-0.026400368738241142,-0.027018154180422034,-0.02756683579571912,-0.026939436360925054,-0.025565628663760862,-0.03161793796511155,-0.02509945573280696,-0.025745512411326422,-0.025534447559066864,-0.027173433712296063,-0.029066478487272666,-0.025307131292713936,-0.026870469838484633,-0.02933550864164731,-0.02658157995532269,-0.02408135875183284,-0.026391641664908434,-0.025058571792726095,-0.02515495112374332,-0.026192835406428375,-0.023768796540749936,-0.025738305572422435,-0.02365457683100374,-0.030064195568570644,-0.024176156352455132,-0.024093825317451918,-0.03444446771350531,-0.02369521066310284,-0.024808313008021284,-0.023315743449573614,-0.030868773658135607,-0.024521329781858302,-0.028110237222657736,-0.030134939832173847,-0.026427572256842936,-0.02392778333418734,-0.02579447219063699,-0.0252153854660168,-0.025440946170567035,-0.026654560469942655,-0.024073229573331016,-0.02325335213295526,-0.02401270824711661,-0.02546550610886581,-0.026191915461904344,-0.022844133536204195,-0.02520460534262461,-0.0238843437662462,-0.025959336518210866,-0.024433925974598855,-0.022813139799661934,-0.03525307264461002,-0.03332435991363049,-0.02463697611836427,-0.024659172779836945,-0.022746492840933424,-0.029899330606345847,-0.02363671170441667,-0.024852068160683118,-0.024243362516632165,-0.02261901852501292,-0.024795200101684345,-0.024165457872503616,-0.02538933668763041,-0.0319027891344166,-0.02304388964355872,-0.02471459912324096,-0.023684374345252092,-0.022443430096195274,-0.023634227509878588,-0.02537928098428778,-0.02531312982421869,-0.025624042799624335,-0.023949143530570906,-0.024551828960634098,-0.024990559558745736,-0.026500569865074364,-0.022157719696438018,-0.02416616721838684,-0.022287392607296716,-0.028937122976147176,-0.023209911720360212,-0.023695559886921968,-0.02527543082112129,-0.023661874483849998,-0.024710002474722815,-0.02343458561815147,-0.02782725449983551,-0.025975257182620153,-0.022361593781799034,-0.03285853327276705,-0.030068479820662714,-0.021861539812819665,-0.02360151029037118,-0.02575606838782173,-0.026641233827732022,-0.02308594160890174,-0.03135781692973197,-0.02240229729571004,-0.020691397101176807,-0.03302927252754381,-0.020805651428178567,-0.022192728126098155,-0.021407529741951425,-0.020363135725912612,-0.029057861406854877,-0.02616710786528724,-0.02761231686689793,-0.022251980681508205,-0.027204034942494678,-0.022619897094493108,-0.027682631516760457,-0.028237579174311116,-0.021119620984553767,-0.029971734831932488,-0.026250817768361343,-0.023812135621057044,-0.023832419787967747,-0.026289292030055252,-0.023304860013440957,-0.02180146823352311,-0.03015187824382243,-0.022088109823269152,-0.024142235905726745,-0.021458972300925867,-0.02688919736896422,-0.023957481044471846,-0.021745592919339585,-0.021515438654856184,-0.023167306537717373,-0.02284708769829213,-0.022562508737229675,-0.027050906450559856,-0.026961401290326807,-0.02218135466870908,-0.028911382707822633,-0.02051746659818636,-0.020046754209155183,-0.02117001956522672,-0.021873573389981704,-0.0211846727591419,-0.026004085684247072,-0.020429147529228007,-0.021798227421077666,-0.023824686645939282,-0.020986923654932946,-0.019556993843661052,-0.020570333868827062,-0.020154502085979787,-0.020724347997185935,-0.019411344565241215,-0.028007093550745064,-0.018951399605284015,-0.018929167749093992,-0.01823138993363839,-0.018084719403473254,-0.020808035316119668,-0.017965950007149078,-0.024096090129617012,-0.019959828436828073,-0.02313804127519257,-0.019908355088092744,-0.019349912069322357,-0.019072818272416425,-0.019562401611338053,-0.020518756038965972,-0.020174222478438083,-0.018828523797828497,-0.01862291888496832,-0.019779794896790315,-0.019977468868950802,-0.01983006798647679,-0.023053374249825054,-0.019003243843146164,-0.020700778763832584,-0.019134165665879967,-0.01842667306919145,-0.019313550413958158,-0.02362977819061463,-0.020792018049781397,-0.01826641891128266,-0.020444227878122147,-0.017689165462380536,-0.024571055363689438,-0.018597280117156917,-0.01788422620997416,-0.01778534789489847,-0.017262884972227187,-0.017519809584147176,-0.017943250507182252,-0.017721849101092722,-0.017523918738314822,-0.019376240723854677,-0.017560960622026698,-0.0176976978362107,-0.01708692200726806,-0.019580205983003925,-0.02165971062658009,-0.01851631513985698,-0.018472262628170963,-0.02250238407229856,-0.018368436752935615,-0.01711170692412009,-0.027328212577377872,-0.0217629035353724,-0.019171266500826952,-0.02319708066847713,-0.01831513851346868,-0.024454059386105915,-0.01848429745885213,-0.016617794095567375,-0.01860873293989065,-0.017282469956024994,-0.01800757584710335,-0.018228856971988616,-0.02076727618409781,-0.01606790471134024,-0.016569934323948193,-0.02166383397219597,-0.017958560601938737,-0.01728978273391364,-0.020312589606353845,-0.022841273771663798,-0.017967850086654094,-0.015810647075910775,-0.017248887592652477,-0.01841152755587051,-0.01735870332920313,-0.016151277045296546,-0.019983308040128645,-0.018255090166146633,-0.01592364605577362,-0.017178524861855112,-0.020602417447876557,-0.016331385583879546,-0.01711271837164127,-0.016266232660640038,-0.02127218102710241,-0.019428052202551314,-0.01559571024232142,-0.016080272848134368,-0.019037498563560934,-0.018744108282505098,-0.016333942066420394,-0.02027678670978726,-0.017177625843914753,-0.016844504184504942,-0.020423347808902228,-0.01595075573052274,-0.015094218117214293,-0.015609234767130198,-0.015624083947489271,-0.01550480570576866,-0.019302655322474292,-0.015333141302441698,-0.0154041685330875,-0.018982739285532506,-0.015342973294490447,-0.018190284028017877,-0.01559717045034061,-0.01513509951999122,-0.015308637467247399,-0.017745528657498302,-0.01511639008931776,-0.016511616095945487,-0.018522638332166233,-0.015399432967317923,-0.017431335393542798,-0.01859025826952741,-0.01481727469432728,-0.014690941318483204,-0.016439703797981858,-0.019220674078353962,-0.015494275631590825,-0.015018752844891755,-0.01542396624730706,-0.014883395977990628,-0.017542063475981716,-0.015022795954514003,-0.017967033982756012,-0.017180377335299406,-0.012952041409491449,-0.013425688096389459,-0.01415825952776474,-0.016212817363728146,-0.014364983078793098,-0.01765619837868793,-0.014816678622121748,-0.013988131277872422,-0.014347334790033587,-0.017584537633660274,-0.016300142342255325,-0.014716172847062678,-0.014583914316167089,-0.013694515149285472,-0.016047151283759744,-0.013944387404468921,-0.01633297968773933,-0.012639811906542191,-0.013653056486559578,-0.013948417650247997,-0.015585164374656683,-0.014663666464783422,-0.014683245756404898,-0.014529071315185693,-0.014757955443381153,-0.015103068059931262,-0.012881793647806991,-0.014609999945165708,-0.016846434222207312,-0.01635965782845525,-0.015442612290316354,-0.014910033751064276,-0.014979227921008328,-0.013978309921704167,-0.015017037047181646,-0.014531501175212055,-0.013275003512956383,-0.011981133144704255,-0.015629704012398847,-0.013358094052618839,-0.014988782059150755,-0.013025026791315814,-0.013905606661711459,-0.01210379254417916,-0.013729652044602983,-0.013834327182297518,-0.01249312653115296,-0.014062776711548874;-0.029696184366896805;0.033378804922872984;0.0 ;Swimmer-v5;qwen2.5-coder:32b;{'temperature': 0.9, 'seed': 672962};PPO;{'policy': 'MlpPolicy', 'verbose': 0, 'device': 'cpu', 'seed': 672962};500000;"def reward_func(observations:np.ndarray, is_success:bool, is_failure:bool) -> float: """"""Reward function for Swimmer-v5 ->>>>>>> e047f7711f45984ca0a4af1d2f3cbf089b9a0770 Args: observations (np.ndarray): observation on the current state @@ -658,7 +652,6 @@ def improved_reward_func(observations: np.ndarray, is_success: bool, is_failure: float: The reward for the current step """""" angle_front_end = observations[0] -<<<<<<< HEAD velocity_x = observations[3] # Proportional rewards for maintaining a good angle and high velocity @@ -676,8 +669,7 @@ def improved_reward_func(observations: np.ndarray, is_success: bool, is_failure: # Explanation of the new reward function: # - `angle_reward`: Stronger penalty for misalignment to ensure the swimmer stays aligned with the forward direction. # - `velocity_reward`: Stronger reward for moving forward, encouraging rapid progress. -# - `intermediate_reward`: Provides a small reward for any positive velocity, incentivizing continuous movement and exploration without penalizing non-success/failure states.";-0.42145503058785727,-0.39117189824652254,-0.3111069601367407,-0.458295187306496,-0.254449276158925,-0.21580691034236724,-0.18087979337632185,-0.18931060802209948,-0.14585924622690086,-0.12550578411590244,-0.12277886090309081,-0.09566711870609343,-0.08582038675932424,-0.0746244028445947,-0.05353164935911787,-0.05708022259762094,-0.05158508963766634,-0.03605619134759546,-0.034233870057377096,-0.03305717074425395,-0.023946339122721254,-0.02719592788649069,-0.0223594120905623,-0.02391917680770813,-0.021616867879619174,-0.018910397196648412,-0.01832745506408361,-0.01501627689708215,-0.016907552860521112,-0.015372828580095638,-0.011194250158591287,-0.012415109535103795,-0.013037001282277525,-0.008225276000102767,-0.01275186852789226,-0.013249377394530219,-0.008934125597357174,-0.005606480689202778,-0.012787575133495425,-0.00854334029101651,-0.014120820621146632,-0.006049115717049685,-0.009534530081404277,-0.003335890992992839,-0.007451394430829344,-0.009560427589493803,-0.006845348892488066,-0.011552770763512226,-0.010970293548236145,-0.006688909104246715,-0.008472676715916276,-0.002034610856578587,-0.0012592651853649288,-0.0008596703136011863,-0.006314730188747406,-0.006786799003785238,-0.0031140224172999955,-0.00024677671837775137,-0.004229906161145515,-0.0020766859256102247,-0.0017728622092875348,-0.04457531160296761,-0.003804642981989187,-0.18155319261995534,-0.003666333210937541,-0.008080471064438377,-0.0842377491806643,-0.06522358258681635,-0.1193700523920485,-0.04779369361208386,-0.004955798621403487,-0.10759879373135112,-0.0388553386524671,0.000145958561231968,-0.0021583114025748693,-0.009863511263009618,-0.06896266100991368,-0.03628573696106675,0.0014460990745237441,-0.024615234086438766,-0.002989985854832328,-0.00014594593792960928,-0.0011551265772053179,0.003368274789351934,0.002312505593029923,-3.3050477465459724e-05,0.0050220825133101,0.0023833464317223694,0.007329740948422886,0.004162393844439496,0.008611802244346736,0.01033100879850136,0.010034984914595183,0.01054759718986819,0.013338125368857309,0.012099167809622216,0.012207076099507457,0.011993125364585747,0.012854369903764502,0.012707493522900274,0.0090873661774637,0.010510388341238554,0.012546425377594884,0.013713499116365992,0.012304910176586983,0.013581162388563689,0.01568796213115033,0.011889789103190945,0.013678163227263389,0.01391240955463238,0.015749024720270316,0.015551183701728703,0.015018255671620377,0.01449113420195877,0.014605661767655393,0.014758810141052224,0.01443744555751493,0.010542183731981165,0.015029485528582538,0.014299061265828202,0.014294913852491912,0.017114676407526504,0.01661927946644153,0.016483283154550454,0.016350264788121373,0.01597527974421025;-0.03268783456721014;0.08287347831372009;0.0 -======= +# - `intermediate_reward`: Provides a small reward for any positive velocity, incentivizing continuous movement and exploration without penalizing non-success/failure states.";-0.42145503058785727,-0.39117189824652254,-0.3111069601367407,-0.458295187306496,-0.254449276158925,-0.21580691034236724,-0.18087979337632185,-0.18931060802209948,-0.14585924622690086,-0.12550578411590244,-0.12277886090309081,-0.09566711870609343,-0.08582038675932424,-0.0746244028445947,-0.05353164935911787,-0.05708022259762094,-0.05158508963766634,-0.03605619134759546,-0.034233870057377096,-0.03305717074425395,-0.023946339122721254,-0.02719592788649069,-0.0223594120905623,-0.02391917680770813,-0.021616867879619174,-0.018910397196648412,-0.01832745506408361,-0.01501627689708215,-0.016907552860521112,-0.015372828580095638,-0.011194250158591287,-0.012415109535103795,-0.013037001282277525,-0.008225276000102767,-0.01275186852789226,-0.013249377394530219,-0.008934125597357174,-0.005606480689202778,-0.012787575133495425,-0.00854334029101651,-0.014120820621146632,-0.006049115717049685,-0.009534530081404277,-0.003335890992992839,-0.007451394430829344,-0.009560427589493803,-0.006845348892488066,-0.011552770763512226,-0.010970293548236145,-0.006688909104246715,-0.008472676715916276,-0.002034610856578587,-0.0012592651853649288,-0.0008596703136011863,-0.006314730188747406,-0.006786799003785238,-0.0031140224172999955,-0.00024677671837775137,-0.004229906161145515,-0.0020766859256102247,-0.0017728622092875348,-0.04457531160296761,-0.003804642981989187,-0.18155319261995534,-0.003666333210937541,-0.008080471064438377,-0.0842377491806643,-0.06522358258681635,-0.1193700523920485,-0.04779369361208386,-0.004955798621403487,-0.10759879373135112,-0.0388553386524671,0.000145958561231968,-0.0021583114025748693,-0.009863511263009618,-0.06896266100991368,-0.03628573696106675,0.0014460990745237441,-0.024615234086438766,-0.002989985854832328,-0.00014594593792960928,-0.0011551265772053179,0.003368274789351934,0.002312505593029923,-3.3050477465459724e-05,0.0050220825133101,0.0023833464317223694,0.007329740948422886,0.004162393844439496,0.008611802244346736,0.01033100879850136,0.010034984914595183,0.01054759718986819,0.013338125368857309,0.012099167809622216,0.012207076099507457,0.011993125364585747,0.012854369903764502,0.012707493522900274,0.0090873661774637,0.010510388341238554,0.012546425377594884,0.013713499116365992,0.012304910176586983,0.013581162388563689,0.01568796213115033,0.011889789103190945,0.013678163227263389,0.01391240955463238,0.015749024720270316,0.015551183701728703,0.015018255671620377,0.01449113420195877,0.014605661767655393,0.014758810141052224,0.01443744555751493,0.010542183731981165,0.015029485528582538,0.014299061265828202,0.014294913852491912,0.017114676407526504,0.01661927946644153,0.016483283154550454,0.016350264788121373,0.01597527974421025;-0.03268783456721014;0.08287347831372009;0.0 x_velocity = observations[3] y_velocity = observations[4] angular_velocities = observations[5:] @@ -1176,4 +1168,3 @@ def improved_reward_func(observations: np.ndarray, is_success: bool, is_failure: # 2. Increased weight on x_velocity to strongly encourage forward movement, which is the primary goal. # 3. Increased penalty for y_movement to discourage any vertical motion that does not contribute to progress. # 4. Adjusted penalty for angular velocities to maintain stability while still allowing some flexibility in movements.";-0.38394480331705866,-0.4067868551890016,-0.3044686675448834,-0.3201481870133189,-0.22681187929164892,-0.2245501784690505,-0.19861466957277096,-0.16320882308638487,-0.17001175251864498,-0.15397213303756313,-0.11398346129890284,-0.10598314941140069,-0.09621619604950253,-0.08553985627893781,-0.07458228868158075,-0.07651474473415,-0.09134395531847603,-0.13673396865326268,-0.05827876223895221,-0.05516839256486129,-0.07358806358070984,-0.04522631752101681,-0.04032203571766269,-0.04773445851393886,-0.04229320584231243,-0.032081439358322285,-0.05098280366842439,-0.06953378537676447,-0.03537715872135376,-0.05023226754918012,-0.02857746936008581,-0.0489716946731836,-0.04104597793655301,-0.02735643014179097,-0.03591372499339076,-0.030957173983008946,-0.04079789175672593,-0.02329465283301721,-0.04169193806386513,-0.11376153454795536,-0.024182965631888362,-0.03968968704331313,-0.039422822928883765,-0.024007029665685884,-0.024712149447454503,-0.03871086569250058,-0.027993489888002158,-0.02431657936110238,-0.031155653611843432,-0.02795957875935701,-0.027861784792283902,-0.04412511192816683,-0.03158006482151363,-0.030606639690015366,-0.025446312281966397,-0.025925239116405555,-0.07382077720287218,-0.018623763344456853,-0.025373911380826137,-0.056446624283152676,-0.029836663333569605,-0.052957434161980156,-0.03132875804510537,-0.03217260080910869,-0.034010480367420465,-0.04935400739891607,-0.029434890926400142,-0.01951460595607309,-0.03025228137755368,-0.03970439681096254,-0.04200871271308762,-0.025709306266572078,-0.029599358324652214,-0.030346824666295156,-0.029658838546703932,-0.03068141174907094,-0.049967057237616824,-0.013869051084883822,-0.04043116837347944,-0.03725778623435538,-0.040650316500931906,-0.024945128687425596,-0.03175761734635199,-0.03186930522720951,-0.019322745728705792,-0.024800109339760384,-0.036939199686745174,-0.024465515598570475,-0.021671291722078868,-0.026083339397898784,-0.023340380480476645,-0.029510321103334458,-0.018241585830090046,-0.01690081047563429,-0.023469706821716754,-0.017806475864827465,-0.01690760289231307,-0.018861734294021788,-0.01680319256635876,-0.018544930558989363,-0.017738530818418224,-0.021916032494217665,-0.014260546487389088,-0.019457836577973626,-0.020984106200245562,-0.018885820556323048,-0.016193807202421844,-0.0232016333739598,-0.02809850385621639,-0.029066817678377755,-0.020140750887285112,-0.028576045130260734,-0.02164119612744317,-0.016828743719453476,-0.01708332697188323,-0.029958864760558097,-0.026278747828137897,-0.016438649705098004,-0.019686300649194632,-0.026541342122816315,-0.016079207751928268,-0.029223824440002905,-0.017685632213678124,-0.0144414399100769,-0.0237719968552457,-0.017210625891494493,-0.017689497199615857,-0.031855227495852775,-0.02932772376021517,-0.018337921359139853,-0.02309799546943662,-0.0169425743157626,-0.019249924761111988,-0.016219464215282215,-0.020382980711865464,-0.021319550838250562,-0.03381133447442805,-0.020474097476600835,-0.016861581400242617,-0.017962404442113136,-0.030615638538696248,-0.017082522724214306,-0.02082166186306946,-0.015306879841063022,-0.01501117610251855,-0.01616834128219209,-0.015449139731457444,-0.015929319392892136,-0.012614314582416575,-0.015224770348415512,-0.013749180260598981,-0.013784780361286896,-0.01628110025843547,-0.0163414867721096,-0.014788719068663497,-0.013853596894924264,-0.014665103174862155,-0.014857767514271612,-0.01339522023819527,-0.012582121276207673,-0.012624315015746117,-0.014448119197434916,-0.01395970028737767,-0.014218452199375156,-0.014756045410363378,-0.01497832016453497,-0.012993138667811434,-0.01356169773776166,-0.015451535536033975,-0.011929194882687776,-0.013619867645367314,-0.014018460352144702,-0.013650069287131042,-0.012800850318921555,-0.013357277329897322,-0.01322118744905216,-0.013036655017286323,-0.014371832361798524,-0.015162209695090318,-0.012810211433021182,-0.01406716716983809,-0.012610900825261,-0.01370856842230664,-0.012831379082925325,-0.013227410058629015,-0.012190065290064653,-0.011141400383240806,-0.014662713347231338,-0.013720241228712021,-0.014145175111971317,-0.011667089573994439,-0.014422535405428956,-0.013821109567839112,-0.017683754066835294,-0.014442722048675753,-0.01257702434244535,-0.014242748748205438,-0.012626456239229858,-0.012720722896675073,-0.011921171950496454,-0.012983250278515912,-0.011925504419377429,-0.012097286158277626,-0.012220687532799935,-0.012886751424803826,-0.0121978844107356,-0.01249197548306659,-0.01269191504384653,-0.012994135919605666,-0.011804022490844992,-0.013376956868608582,-0.011681151742134402,-0.012653132996352852,-0.0116045353498544,-0.012192096346843328,-0.010834226962277708,-0.011628114823505632,-0.012273000027752057,-0.01157871304028662,-0.01078286971851704,-0.011985550206501333,-0.011149320994004338,-0.011867024388804211,-0.01175194785473861,-0.011458097381385975,-0.010793323525435392,-0.011062919619246589,-0.011801656496448704,-0.011904068442278844,-0.010735174008833758,-0.01033245874245288,-0.010767131444873896,-0.011760193563316633,-0.011615670719781774,-0.011097851582249943,-0.012574197044305471,-0.011536191602567886,-0.012293620239309874,-0.01162685099867669,-0.01231208585037198,-0.011858682765818727,-0.013321673149457005,-0.012769622673303229,-0.011453582031565906,-0.01212329852199383,-0.010147245161864464,-0.010798235322714138,-0.010282533145969667,-0.009186943394283496,-0.011412135241483991,-0.011314848337899832,-0.011228361680218771,-0.010780500177376952,-0.010615346667601321,-0.011189915197496944,-0.01021805054003683,-0.01119789676368024,-0.010433942688194902,-0.010989923573768748,-0.012258049783793658,-0.011707454592857724,-0.01005327336126875,-0.010929198392303614,-0.011709785830867462,-0.011513741631489324,-0.011500814416608706,-0.010285222604260754,-0.010853262802803335,-0.010771849169714472,-0.01177715671126956,-0.010703258584990176,-0.011108746807529222,-0.010584738911838249,-0.010626494924319224,-0.012307134275353349,-0.011116088532501492,-0.010872335884761055,-0.012466652528750117,-0.011079633672441493,-0.010834879972003155,-0.011729767583346349,-0.012721509143718647,-0.011860108392218379,-0.01288681419126887,-0.01431066769941398,-0.012190332541050956,-0.01215569020385349,-0.011363902639710098,-0.012173369459364881,-0.011698513400473115,-0.01185477048211646,-0.011039670863590435,-0.01088941104398953,-0.011971721804582324,-0.011608250560362954,-0.012434926152434422,-0.010658796712636115,-0.011715216550606696,-0.01098416689594032,-0.010485846463023508,-0.010829286700328913,-0.011318094558839586,-0.011414900624119853,-0.011259828896591405,-0.011998884783112776,-0.011958079966881927,-0.010312243003449201,-0.012519406550684132,-0.012658603006041517,-0.01198495083175424,-0.011170744486692433,-0.012403850364283316,-0.012145912414360032,-0.012855060532487417,-0.011170401986127258,-0.010786039456568015,-0.011627026830511082,-0.010818758080866001,-0.011852479396396984,-0.011753793884075436,-0.010716985389915711,-0.01137864292506979,-0.011498958369752761,-0.012332896470046066,-0.010856368705301617,-0.01200198342815261,-0.011606909024997072,-0.011315152188695658,-0.011137504422294798,-0.01093914014052636,-0.012573152812815356,-0.010662448411007717,-0.011641437037019082,-0.011325721629015977,-0.012582548796726399,-0.010948884997800945,-0.011488307586692994,-0.011143890253443532,-0.01131049421180337,-0.010333552901442443,-0.012483899012216335,-0.011005375101435297,-0.012189184070391431,-0.011157665095671974,-0.010892231277577432,-0.013166869798472994,-0.011980541538419109,-0.01155738812052785,-0.011513442119280855,-0.011667523147256524,-0.011679978580292549,-0.012008654313929345,-0.01272522268709763,-0.012163616932218275,-0.011026688373628614,-0.012405601560160118,-0.01032229042396687,-0.010630506156941206,-0.010949598967275117,-0.011047688620457454,-0.011766458912012914,-0.011007574642515621,-0.012189139668577166,-0.011925790009271735,-0.01187129089893651,-0.011345157337204719,-0.012292485125184058,-0.011423238847748287,-0.011210987758717874,-0.011209579488799986,-0.011820977956016769,-0.011792627003097727,-0.011126340099693283,-0.01097630668771055,-0.012709705264053826,-0.012515973330691191,-0.011811913163485663,-0.011841745393202725,-0.01130224206537373,-0.0111026353511649,-0.010499291373622073,-0.013094917844290203,-0.012294988677352757,-0.01164904298969567,-0.010769853694659675,-0.011222190351762341,-0.011653081021200318,-0.011152689394635732,-0.011332840450814398,-0.011954048434502231,-0.010762543022446037,-0.011070366804968045,-0.011930010208148167,-0.012481436309495813,-0.012570256924185444,-0.011663750902926163,-0.012601944494551192,-0.010992984648688437,-0.012111595796806906,-0.01142728999368443,-0.012791957189150037,-0.012786481969862484,-0.010908152761901222,-0.013332256017377805,-0.011682620803607758,-0.010967055144781449,-0.012855146704586972,-0.011486635104031293,-0.011501043000462834,-0.011942251337921997,-0.012080100677086304,-0.011491478530409003,-0.011398395337982932,-0.01127972476901551,-0.011826262873759156,-0.011807576129518367,-0.011886249899328936,-0.012157742344667762,-0.012023906407940883,-0.011498296816064379,-0.011687538004482044,-0.011164794480369566,-0.01083050864632325,-0.011479563300710004,-0.011235460132943886,-0.012005461080469619,-0.01207416032283798,-0.011467153217557475,-0.011794665689276385,-0.012098065076802311,-0.012166279751206616,-0.011108652735293439,-0.011943868677992974,-0.01206275235604163,-0.010674339601947365,-0.011644050636040671,-0.01344304410118597,-0.011305559463878354,-0.012132243938184316,-0.011787096918140422,-0.012036654194941647,-0.011519260051658233,-0.011705267672847516,-0.01130717322739041,-0.011631204528984656,-0.012168452541184246,-0.013313130469370249,-0.011568389309226839,-0.012265646052957874,-0.011640608136380362,-0.011522466018808688,-0.012240133551963342,-0.012250577185096066,-0.011492111072141292,-0.010901687064469485,-0.01224782484351908,-0.011282087039730276,-0.011115432899454618,-0.011731593046244949,-0.012332589190279637,-0.012224452423561287,-0.012432253697915552,-0.012168270987810618,-0.011588647394649178,-0.010868942293451,-0.011860875284858859,-0.011752002575439076,-0.011078404270146985,-0.012463367809729219,-0.01154345222794395,-0.012154592055316953,-0.0115865030869459,-0.010788089491935788,-0.012059134103541572,-0.011923270822742651,-0.01167347065114873,-0.011290372016659838,-0.012211670705493689,-0.011718799092041009,-0.011023587736597756,-0.011665278611000978,-0.011386903722689594,-0.011733221182421736,-0.01188764284039758,-0.012247824607607607,-0.011292318686543653,-0.01100156189339439,-0.012370402669419325,-0.011818138262641031,-0.011014640477332104,-0.011190700676220064,-0.011906117330415654,-0.011344232412840638,-0.011023782408859002,-0.011898044734899459,-0.011129996456227375,-0.011614209356152132,-0.011722709922451752,-0.011165053896844248,-0.010922159784940759,-0.01105866152910126;-0.022767274294174807;0.03844033305326247;0.0 ->>>>>>> e047f7711f45984ca0a4af1d2f3cbf089b9a0770 diff --git a/src/data/analyse.ipynb b/src/data/analyse.ipynb index 65f779f..274370b 100644 --- a/src/data/analyse.ipynb +++ b/src/data/analyse.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -43,6 +43,44 @@ "\tplt.show()" ] }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_rolling_means(data1: pd.DataFrame, data2: pd.DataFrame, label1: str, label2: str) -> None:\n", + " # Calcul des moyennes glissantes pour le premier jeu de données\n", + " rolling_means1 = []\n", + " for _, row in data1[['rewards']].iterrows():\n", + " rew = row['rewards']\n", + " rolling_mean = pd.Series(rew).rolling(window=3).mean()\n", + " rolling_means1.append(rolling_mean)\n", + " all_rolling_means1 = pd.concat(rolling_means1, axis=1).mean(axis=1)\n", + " overall_rolling_mean1 = all_rolling_means1.rolling(window=3).mean()\n", + "\n", + " # Calcul des moyennes glissantes pour le deuxième jeu de données\n", + " rolling_means2 = []\n", + " for _, row in data2[['rewards']].iterrows():\n", + " rew = row['rewards']\n", + " rolling_mean = pd.Series(rew).rolling(window=3).mean()\n", + " rolling_means2.append(rolling_mean)\n", + " all_rolling_means2 = pd.concat(rolling_means2, axis=1).mean(axis=1)\n", + " overall_rolling_mean2 = all_rolling_means2.rolling(window=3).mean()\n", + "\n", + " # Tracé des moyennes glissantes pour les deux jeux de données\n", + " plt.plot(overall_rolling_mean1, label=label1, color='blue', linewidth=2)\n", + " plt.plot(overall_rolling_mean2, label=label2, color='green', linewidth=2)\n", + "\n", + " # Ajout des détails du graphique\n", + " plt.legend()\n", + " plt.ylabel('Normalized Cumulative Reward')\n", + " plt.xlabel('Episodes')\n", + " plt.title('Rolling Means Comparison')\n", + " plt.grid(True)\n", + " plt.show()" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -52,7 +90,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -224,7 +262,7 @@ "9 0.063800 0.298855 0.60 " ] }, - "execution_count": 51, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -241,7 +279,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -353,7 +391,7 @@ "max 0.042611 0.053656 0.065886 0.311864 0.97000" ] }, - "execution_count": 52, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -364,7 +402,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -476,7 +514,7 @@ "max 0.031428 0.060247 0.065719 0.347238 0.990000" ] }, - "execution_count": 53, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -485,6 +523,26 @@ "best.describe()" ] }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ggULgNRNYMePH6dZs2Y4OTlRqFAhBg4cSHS0ubq5T58+dOzYkalTp1K4cGEKFSrEO++8Q1JS0mPfXQghMiLlHECeTmnXAJ29ezZHY8qoXE+Apk+fzoABA+jbty8VK1Zk9uzZODs7M2/evDSv/+233xg0aBDVq1enfPnyzJ07F6PRyNatWy2uc3BwwM/PT/tJ+UWZ39y9e5dNmzbxzjvv4OLikuY1Kacq79KlCxEREWzYsIFDhw5Rs2ZNmjdvzr1797RrLly4wKpVq1i7di1r165l+/btTJ48WTs/adIkfv75Z2bPns3Jkyd59913ef3119m+fbvF53744YdMnjyZ06dPU7VqVaKjo2nbti1bt27l8OHDtG7dmnbt2nH16lUAVqxYQdGiRRk/fjw3btwgNDRUi6d169a88sorHDt2jKVLl7Jr1y4GDx6sfVafPn24du0a27ZtY/ny5Xz//ffpJtoAI0aMYP78+QBaIm2NadOmERQUxOHDhxk0aBBvv/02Z86cASA6OpomTZpw48YNVq9ezdGjR3n//fcxGo1069aN9957j0qVKmmf261bt1TPj4mJITg4GE9PTw4cOMCyZcvYsmWLxTsDbNu2jQsXLrBt2zYWLlzIggULtIRKCCGehsUQeAcPbdvUBwjMHaGTjEkoipJToT1Rrq4FlpiYyKFDhxg1apR2zMbGhhYtWrBnz54MPSM2NpakpCQKFixocTwkJAQfHx88PT1p1qwZEyZMoFChQlkaf0pBc4K4FX0LIMfWPvFz9ePgwINPvO78+fMoikK5cuUsjnt5eREfHw/AO++8wxdffMGuXbvYv38/ERERWlPL1KlTWbVqFcuXL2fgwIGAWsOzYMEC3NzcAHjjjTfYunUrEydOJCEhgc8//5wtW7ZQr149AEqWLMmuXbv44YcfaNKkiRbD+PHjLRY+LViwINWqVdP2P/vsM1auXMnq1asZPHgwBQsWRK/X4+bmhp+fH87OzoCacPXs2VOrmSlTpgzffPMNTZo0YdasWVy9epUNGzawf/9+ateuDcBPP/1EhQoV0i03V1dXPDw81LL283tiOT+qbdu2DBo0CIAPPviAr776im3btlGuXDkWLVrE7du3OXDggPa3W7p0aYvPtrW1feznLlq0iPj4eH7++Wctsf32229p164dX3zxBb6+vgB4enry7bffotfrKV++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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_rolling_means(legacy, best, 'Legacy function', 'Generated function')" + ] + }, { "cell_type": "code", "execution_count": 76, @@ -1855,7 +1913,7 @@ ], "metadata": { "kernelspec": { - "display_name": "llm", + "display_name": "LLM_pro", "language": "python", "name": "python3" }, @@ -1869,7 +1927,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.11" + "version": "3.11.10" } }, "nbformat": 4, diff --git a/src/main.py b/src/main.py index 3f3b80f..68dd8f3 100644 --- a/src/main.py +++ b/src/main.py @@ -67,21 +67,12 @@ def main(): vd=True, nb_vec_envs=4, options=llm_options, -<<<<<<< HEAD - training_time=500_000, - proxies=proxies - ) - viral.generate_context() - viral.generate_reward_function(n_init=1, n_refine=2) - count = 0 -======= legacy_training=False, training_time=500_000, proxies=proxies, ) viral.generate_context() viral.generate_reward_function(n_init=1, n_refine=2) ->>>>>>> e047f7711f45984ca0a4af1d2f3cbf089b9a0770 for state in viral.memory: if state.idx != 0 and viral.memory[0].performances['sr'] > state.performances['sr']: