1
+ {
2
+ "cells" : [
3
+ {
4
+ "cell_type" : " code" ,
5
+ "execution_count" : 1 ,
6
+ "metadata" : {
7
+ "collapsed" : true
8
+ },
9
+ "outputs" : [
10
+ {
11
+ "data" : {
12
+ "text/plain" : " {'action_space': [0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29]}"
13
+ },
14
+ "execution_count" : 1 ,
15
+ "metadata" : {},
16
+ "output_type" : " execute_result"
17
+ }
18
+ ],
19
+ "source" : [
20
+ " import gym\n " ,
21
+ " from EduSim.Envs.MBS import GPLEnv, MBSAgent, mbs_train_eval\n " ,
22
+ " \n " ,
23
+ " env: GPLEnv = gym.make(\" MBS-GPL-v0\" , seed=10, n_steps=200)\n " ,
24
+ " agent = MBSAgent(env.action_space)\n " ,
25
+ " \n " ,
26
+ " env"
27
+ ]
28
+ },
29
+ {
30
+ "cell_type" : " code" ,
31
+ "execution_count" : 2 ,
32
+ "outputs" : [
33
+ {
34
+ "data" : {
35
+ "text/plain" : " [0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29]"
36
+ },
37
+ "execution_count" : 2 ,
38
+ "metadata" : {},
39
+ "output_type" : " execute_result"
40
+ }
41
+ ],
42
+ "source" : [
43
+ " env.action_space"
44
+ ],
45
+ "metadata" : {
46
+ "collapsed" : false ,
47
+ "pycharm" : {
48
+ "name" : " #%%\n "
49
+ }
50
+ }
51
+ },
52
+ {
53
+ "cell_type" : " code" ,
54
+ "execution_count" : 3 ,
55
+ "outputs" : [
56
+ {
57
+ "name" : " stdout" ,
58
+ "output_type" : " stream" ,
59
+ "text" : [
60
+ " Episode| Total-E Episode-Reward Progress \n " ,
61
+ " 1| 100 nan "
62
+ ]
63
+ },
64
+ {
65
+ "ename" : " ValueError" ,
66
+ "evalue" : " matmul: Input operand 1 does not have enough dimensions (has 0, gufunc core with signature (n?,k),(k,m?)->(n?,m?) requires 1)" ,
67
+ "output_type" : " error" ,
68
+ "traceback" : [
69
+ " \u001B [1;31m---------------------------------------------------------------------------\u001B [0m" ,
70
+ " \u001B [1;31mValueError\u001B [0m Traceback (most recent call last)" ,
71
+ " \u001B [1;32m<ipython-input-3-2c9d0fca3c00>\u001B [0m in \u001B [0;36m<module>\u001B [1;34m\u001B [0m\n \u001B [0;32m 1\u001B [0m \u001B [1;32mfrom\u001B [0m \u001B [0mlongling\u001B [0m \u001B [1;32mimport\u001B [0m \u001B [0mset_logging_info\u001B [0m\u001B [1;33m\u001B [0m\u001B [1;33m\u001B [0m\u001B [0m\n \u001B [0;32m 2\u001B [0m \u001B [0mset_logging_info\u001B [0m\u001B [1;33m(\u001B [0m\u001B [1;33m)\u001B [0m\u001B [1;33m\u001B [0m\u001B [1;33m\u001B [0m\u001B [0m\n \u001B [1;32m----> 3\u001B [1;33m mbs_train_eval(\n \u001B [0m\u001B [0;32m 4\u001B [0m \u001B [0magent\u001B [0m\u001B [1;33m,\u001B [0m\u001B [1;33m\u001B [0m\u001B [1;33m\u001B [0m\u001B [0m\n \u001B [0;32m 5\u001B [0m \u001B [0menv\u001B [0m\u001B [1;33m,\u001B [0m\u001B [1;33m\u001B [0m\u001B [1;33m\u001B [0m\u001B [0m\n " ,
72
+ "\u001B[1;32mE:\\Program\\EduSim\\EduSim\\SimOS\\SimOS.py\u001B[0m in \u001B[0;36mtrain_eval\u001B[1;34m(agent, env, max_steps, max_episode_num, n_step, train, logger, level, board_dir, sw, episode_callback, summary_callback, *args, **kwargs)\u001B[0m\n\u001B[0;32m 231\u001B[0m \u001B[0msummary_callback\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mreward_summary_callback\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 232\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 233\u001B[1;33m meta_train_eval(\n\u001B[0m\u001B[0;32m 234\u001B[0m \u001B[0magent\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0menv\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 235\u001B[0m \u001B[0mmax_steps\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mmax_episode_num\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mn_step\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mtrain\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
73
+ "\u001B[1;32mE:\\Program\\EduSim\\EduSim\\SimOS\\SimOS.py\u001B[0m in \u001B[0;36mmeta_train_eval\u001B[1;34m(agent, env, max_steps, max_episode_num, n_step, train, logger, level, episode_callback, summary_callback, values, monitor)\u001B[0m\n\u001B[0;32m 115\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 116\u001B[0m \u001B[1;32mtry\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 117\u001B[1;33m \u001B[0mlearner_profile\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0menv\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mbegin_episode\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 118\u001B[0m \u001B[0magent\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mbegin_episode\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mlearner_profile\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 119\u001B[0m \u001B[0mepisode\u001B[0m \u001B[1;33m+=\u001B[0m \u001B[1;36m1\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
74
+ "\u001B[1;32mE:\\Program\\EduSim\\EduSim\\Envs\\MBS\\Env.py\u001B[0m in \u001B[0;36mbegin_episode\u001B[1;34m(self, *args, **kwargs)\u001B[0m\n\u001B[0;32m 169\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mbegin_episode\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m*\u001B[0m\u001B[0margs\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 170\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_learner\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mnext\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mlearners\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 171\u001B[1;33m \u001B[0mobservation\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m*\u001B[0m\u001B[0m_\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mexam\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 172\u001B[0m \u001B[1;32mreturn\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_learner\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mprofile\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mobservation\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 173\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n",
75
+ " \u001B [1;32mE:\\ Program\\ EduSim\\ EduSim\\ Envs\\ MBS\\ Env.py\u001B [0m in \u001B [0;36mexam\u001B [1;34m(self)\u001B [0m\n \u001B [0;32m 29\u001B [0m \u001B [1;33m\u001B [0m\u001B [0m\n \u001B [0;32m 30\u001B [0m \u001B [1;32mdef\u001B [0m \u001B [0mexam\u001B [0m\u001B [1;33m(\u001B [0m\u001B [0mself\u001B [0m\u001B [1;33m)\u001B [0m\u001B [1;33m:\u001B [0m\u001B [1;33m\u001B [0m\u001B [1;33m\u001B [0m\u001B [0m\n \u001B [1;32m---> 31\u001B [1;33m observation = [\n \u001B [0m\u001B [0;32m 32\u001B [0m [\n \u001B [0;32m 33\u001B [0m \u001B [0mtest_item\u001B [0m\u001B [1;33m.\u001B [0m\u001B [0mid\u001B [0m\u001B [1;33m,\u001B [0m\u001B [1;33m\u001B [0m\u001B [1;33m\u001B [0m\u001B [0m\n " ,
76
+ "\u001B[1;32mE:\\Program\\EduSim\\EduSim\\Envs\\MBS\\Env.py\u001B[0m in \u001B[0;36m<listcomp>\u001B[1;34m(.0)\u001B[0m\n\u001B[0;32m 32\u001B[0m [\n\u001B[0;32m 33\u001B[0m \u001B[0mtest_item\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mid\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 34\u001B[1;33m \u001B[1;36m1\u001B[0m \u001B[1;32mif\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mrandom_state\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mrandom\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m \u001B[1;33m<\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mtest\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mtest_item\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mtimestamp\u001B[0m\u001B[1;33m)\u001B[0m \u001B[1;32melse\u001B[0m \u001B[1;36m0\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 35\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mtimestamp\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 36\u001B[0m ] for test_item in self.test_item_base\n",
77
+ " \u001B [1;32mE:\\ Program\\ EduSim\\ EduSim\\ Envs\\ MBS\\ Env.py\u001B [0m in \u001B [0;36mtest\u001B [1;34m(self, item, timestamp)\u001B [0m\n \u001B [0;32m 173\u001B [0m \u001B [1;33m\u001B [0m\u001B [0m\n \u001B [0;32m 174\u001B [0m \u001B [1;32mdef\u001B [0m \u001B [0mtest\u001B [0m\u001B [1;33m(\u001B [0m\u001B [0mself\u001B [0m\u001B [1;33m,\u001B [0m \u001B [0mitem\u001B [0m\u001B [1;33m,\u001B [0m \u001B [0mtimestamp\u001B [0m\u001B [1;33m)\u001B [0m\u001B [1;33m:\u001B [0m\u001B [1;33m\u001B [0m\u001B [1;33m\u001B [0m\u001B [0m\n \u001B [1;32m--> 175\u001B [1;33m \u001B [1;32mreturn\u001B [0m \u001B [0mself\u001B [0m\u001B [1;33m.\u001B [0m\u001B [0m_learner\u001B [0m\u001B [1;33m.\u001B [0m\u001B [0mresponse\u001B [0m\u001B [1;33m(\u001B [0m\u001B [0mitem\u001B [0m\u001B [1;33m,\u001B [0m \u001B [0mtimestamp\u001B [0m\u001B [1;33m)\u001B [0m\u001B [1;33m\u001B [0m\u001B [1;33m\u001B [0m\u001B [0m\n \u001B [0m" ,
78
+ "\u001B[1;32mE:\\Program\\EduSim\\EduSim\\Envs\\MBS\\meta\\Learner\\GPLLearner.py\u001B[0m in \u001B[0;36mresponse\u001B[1;34m(self, test_item, timestamp, *args, **kwargs)\u001B[0m\n\u001B[0;32m 46\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 47\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mresponse\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mtest_item\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mtimestamp\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m*\u001B[0m\u001B[0margs\u001B[0m\u001B[1;33m,\u001B[0m \u001B[1;33m**\u001B[0m\u001B[0mkwargs\u001B[0m\u001B[1;33m)\u001B[0m \u001B[1;33m->\u001B[0m \u001B[1;33m...\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 48\u001B[1;33m return gpl(\n\u001B[0m\u001B[0;32m 49\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_ability\u001B[0m\u001B[1;33m[\u001B[0m\u001B[0mtest_item\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mid\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 50\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_ability_coefficient\u001B[0m\u001B[1;33m[\u001B[0m\u001B[0mtest_item\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mid\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n",
79
+ "\u001B[1;32mE:\\Program\\EduSim\\EduSim\\Envs\\MBS\\utils.py\u001B[0m in \u001B[0;36mgeneralized_power_law\u001B[1;34m(student_ability, additional_student_ability, item_difficulty, additional_item_difficulty, elapsed_time, decay_rate, correct_times, attempts, window_correct_coefficients, window_attempt_coefficients)\u001B[0m\n\u001B[0;32m 218\u001B[0m \u001B[0mcw\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mnp\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0masarray\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mcorrect_times\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mT\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 219\u001B[0m \u001B[0mnw\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mnp\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0masarray\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mattempts\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mT\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 220\u001B[1;33m \u001B[0mh\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mtheta_cw\u001B[0m \u001B[1;33m@\u001B[0m \u001B[0mcw\u001B[0m \u001B[1;33m+\u001B[0m \u001B[0mtheta_nw\u001B[0m \u001B[1;33m@\u001B[0m \u001B[0mnw\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 221\u001B[0m \u001B[0mm\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;36m1\u001B[0m \u001B[1;33m/\u001B[0m \u001B[1;33m(\u001B[0m\u001B[1;36m1\u001B[0m \u001B[1;33m+\u001B[0m \u001B[0mnp\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mexp\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0ma\u001B[0m \u001B[1;33m-\u001B[0m \u001B[0md\u001B[0m \u001B[1;33m+\u001B[0m \u001B[0mh\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 222\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n",
80
+ " \u001B [1;31mValueError\u001B [0m: matmul: Input operand 1 does not have enough dimensions (has 0, gufunc core with signature (n?,k),(k,m?)->(n?,m?) requires 1)"
81
+ ]
82
+ }
83
+ ],
84
+ "source" : [
85
+ " from longling import set_logging_info\n " ,
86
+ " set_logging_info()\n " ,
87
+ " mbs_train_eval(\n " ,
88
+ " agent,\n " ,
89
+ " env,\n " ,
90
+ " max_steps=200,\n " ,
91
+ " max_episode_num=100,\n " ,
92
+ " level=\" summary\" ,\n " ,
93
+ " )\n " ,
94
+ " print(\" done\" )\n "
95
+ ],
96
+ "metadata" : {
97
+ "collapsed" : false ,
98
+ "pycharm" : {
99
+ "name" : " #%%\n "
100
+ }
101
+ }
102
+ }
103
+ ],
104
+ "metadata" : {
105
+ "kernelspec" : {
106
+ "display_name" : " Python 3" ,
107
+ "language" : " python" ,
108
+ "name" : " python3"
109
+ },
110
+ "language_info" : {
111
+ "codemirror_mode" : {
112
+ "name" : " ipython" ,
113
+ "version" : 2
114
+ },
115
+ "file_extension" : " .py" ,
116
+ "mimetype" : " text/x-python" ,
117
+ "name" : " python" ,
118
+ "nbconvert_exporter" : " python" ,
119
+ "pygments_lexer" : " ipython2" ,
120
+ "version" : " 2.7.6"
121
+ }
122
+ },
123
+ "nbformat" : 4 ,
124
+ "nbformat_minor" : 0
125
+ }
0 commit comments