This most recent work period involved a lot of refactoring and adding some new key functionality. Matthew asked me to create a simplified Action Type in addition to the one that was all in place, basically just the same actions without PRESSED and RELEASED. Since we still wanted the original structure to be there, all I had to do was cast the "complex" actions to "simple actions. Matthew then asked if I could convert that SimpleAction type into a matrix, so we could have a clearly defined Y.
This was also incredibly easy. I am actually quite happy with how it works as well. All you have to do to create an array for the action is two steps!
The 26 is the number of different Simple Actions we have. Then, to make it so we can run the parser separately from the Agent, I made it the replay can output numpy files for each character where each row in the file contains the frame of an action, and a collapsed matrix of all actions that happened on that frame.
After completing the numpy functionality, I went to edit the demo program to integrate it with our project. The first step of this was making the program use the new numpy framework instead of the hacked together framework I used for the demo. I also simplified a lot of the code so it should improve run time dramatically.
The next step that we are going to take, is to start training the agent. Now that everything is lined up properly, doing the training should not be too large of a task. This timeline should leave us with enough time to complete the project, which is a great feeling to have.
This was also incredibly easy. I am actually quite happy with how it works as well. All you have to do to create an array for the action is two steps!
matrix = numpy.zeros(26)
if action is not SimpleAction.INVALID:
matrix[action] = 1;
The 26 is the number of different Simple Actions we have. Then, to make it so we can run the parser separately from the Agent, I made it the replay can output numpy files for each character where each row in the file contains the frame of an action, and a collapsed matrix of all actions that happened on that frame.
(frame_index, collapsed_action_matrix)
After completing the numpy functionality, I went to edit the demo program to integrate it with our project. The first step of this was making the program use the new numpy framework instead of the hacked together framework I used for the demo. I also simplified a lot of the code so it should improve run time dramatically.
The next step that we are going to take, is to start training the agent. Now that everything is lined up properly, doing the training should not be too large of a task. This timeline should leave us with enough time to complete the project, which is a great feeling to have.
Comments
Post a Comment