-
Notifications
You must be signed in to change notification settings - Fork 129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issues Scoring Submission - "Program command is not specified." #3435
Comments
Hello, does your scoring program includes a |
Yes it does. It contains |
Hi, I am not sure I understand your problem. Where does the error message come from? You can draw inspiration from this example bundle if it helps: The scoring program is here: Note that the
The variables You can learn more in this Wiki page: |
This error comes from submitting an example submission as I am testing the scoring portion of the competition before its publication. For this competition, there is no input data needed as the reinforcement learning agent is just run on a scenario specified by the custom Docker container it is running in. I know the agent is being evaluated and scored, but the results are being written to a folder different from the normal output folder (/cage/CybORG/Evaluation/) just because of how the validation script is written. I’m trying to open the results file in score.py and writing it out to scores.txt which is (hopefully) being written to the output folder. I know that the submission is for sure being evaluated, I am just unsure if the exception is because there is an issue with score.py, my metadata file, or something else. Sorry for any confusion. |
To have the scores reflected on the leaderboard, you need to write them in the right format, and in the The format is: score_1: 0.44
score_2: 0.77 The numbers are given for the example. For the path, it should be: # Scoring program
import sys, os, os.path
input_dir = sys.argv[1]
output_dir = sys.argv[2]
submit_dir = os.path.join(input_dir, 'res')
truth_dir = os.path.join(input_dir, 'ref')
output_filename = os.path.join(output_dir, 'scores.txt') This bundle examples may be more relevant, as it is lighter, and does not involve ground truth, like in your problem: I hope this helps. |
So I have updated the score.py script I am using for the scoring program to extract and write out the score.txt file. It now looks as such:
My metadata file for the scoring program just contains:
I am no longer getting the "Program command is not specified" error, but there is still no score being pulled to the leaderboard. The logic the Docker image follows has the submission evaluation being done immediately and writes out a summary file to a specified file path (/cage/CybORG/Evaluation/), as well as prints it out to the console. The score.py I've written looks for the file in that folder and should be writing out "avg_rewards: some_reward" to $output/scores.txt. However, the submission fails at the scoring step and the console contents are printed out to the output log, so I am not sure if score.py is actually being run. I have also verified that the leaderboard key does match up wtih what is being written to scores.txt. |
Probably your scoring program crashes. Try to check the "scoring error logs". |
Hello, I am currently organizing a reinforcement learning-based competition where participants submit their agents via Python scripts which are then automatically evaluated, as defined by our custom Dockerfile:
This script both writes the results to standard output and creates a file within /cage/CybORG/Evaluation/ and I am trying to pull the relevant information so I can write it out to scores.txt. However, I am getting the Exception: "Program command is not specified." and I am unsure how to check if scores.txt was created by my score.py script. That can be seen as follows:
and is run using the command
python $program/score.py $output
.I do know that is at least running and evaluating properly as the standard output of the scoring portion will print the expected output if no scoring program is provided. If anyone has any insight, it would be greatly appreciated.
The text was updated successfully, but these errors were encountered: