Spaces:
Sleeping
Sleeping
apiVersion: diengine.opendilab.org/v1alpha1 | |
kind: DIJob | |
metadata: | |
name: cartpole-dqn | |
labels: | |
run-dijob-type: test | |
spec: | |
group: xxx | |
priorityClassName: "" | |
cleanPodPolicy: "Running" | |
volumes: | |
- name: cache-volume | |
emptyDir: | |
medium: Memory | |
sizeLimit: 128Mi | |
- name: work-dir | |
hostPath: | |
path: /data/di-engine | |
coordinator: | |
template: | |
spec: | |
containers: | |
- name: di-container | |
image: diorchestrator/ding:v0.1.1 | |
imagePullPolicy: IfNotPresent | |
env: | |
- name: PYTHONUNBUFFERED | |
value: "1" | |
command: ["/bin/bash", "-c",] | |
args: | |
- | | |
cat <<EOF > cartpole_dqn_config_k8s.py | |
from easydict import EasyDict | |
cartpole_dqn_config = dict( | |
exp_name='cartpole_dqn', | |
env=dict( | |
collector_env_num=8, | |
collector_episode_num=2, | |
evaluator_env_num=5, | |
evaluator_episode_num=1, | |
stop_value=195, | |
), | |
policy=dict( | |
cuda=False, | |
model=dict( | |
obs_shape=4, | |
action_shape=2, | |
encoder_hidden_size_list=[128, 128, 64], | |
dueling=True, | |
), | |
nstep=3, | |
discount_factor=0.97, | |
learn=dict( | |
batch_size=32, | |
learning_rate=0.001, | |
learner=dict( | |
learner_num=1, | |
send_policy_freq=1, | |
), | |
), | |
collect=dict( | |
n_sample=16, | |
collector=dict( | |
collector_num=2, | |
update_policy_second=3, | |
), | |
), | |
eval=dict(evaluator=dict(eval_freq=50, )), | |
other=dict( | |
eps=dict( | |
type='exp', | |
start=0.95, | |
end=0.1, | |
decay=100000, | |
), | |
replay_buffer=dict( | |
replay_buffer_size=100000, | |
enable_track_used_data=False, | |
), | |
commander=dict( | |
collector_task_space=2, | |
learner_task_space=1, | |
eval_interval=5, | |
), | |
), | |
), | |
) | |
cartpole_dqn_config = EasyDict(cartpole_dqn_config) | |
main_config = cartpole_dqn_config | |
cartpole_dqn_create_config = dict( | |
env=dict( | |
type='cartpole', | |
import_names=['dizoo.classic_control.cartpole.envs.cartpole_env'], | |
), | |
env_manager=dict(type='base'), | |
policy=dict(type='dqn_command'), | |
learner=dict(type='base', import_names=['ding.worker.learner.base_learner']), | |
collector=dict( | |
type='zergling', | |
import_names=['ding.worker.collector.zergling_parallel_collector'], | |
), | |
commander=dict( | |
type='solo', | |
import_names=['ding.worker.coordinator.solo_parallel_commander'], | |
), | |
comm_learner=dict( | |
type='flask_fs', | |
import_names=['ding.worker.learner.comm.flask_fs_learner'], | |
), | |
comm_collector=dict( | |
type='flask_fs', | |
import_names=['ding.worker.collector.comm.flask_fs_collector'], | |
), | |
) | |
cartpole_dqn_create_config = EasyDict(cartpole_dqn_create_config) | |
create_config = cartpole_dqn_create_config | |
cartpole_dqn_system_config = dict( | |
coordinator=dict( | |
operator_server=dict( | |
system_addr='di-server.di-system:8080', | |
api_version='/v1alpha1', | |
init_replicas_request=dict( | |
collectors={ | |
"replicas": 2, | |
}, | |
learners={ | |
"gpus": "0", | |
"replicas": 1, | |
}, | |
), | |
collector_target_num=2, | |
learner_target_num=1, | |
), | |
), | |
path_data='./{}/data'.format(main_config.exp_name), | |
path_policy='./{}/policy'.format(main_config.exp_name), | |
communication_mode='auto', | |
learner_gpu_num=1, | |
) | |
cartpole_dqn_system_config = EasyDict(cartpole_dqn_system_config) | |
system_config = cartpole_dqn_system_config | |
if __name__ == '__main__': | |
from ding.entry.parallel_entry import parallel_pipeline | |
parallel_pipeline([main_config, create_config, system_config], seed=9) | |
EOF | |
ding -m dist --module config -P k8s -c ./cartpole_dqn_config_k8s.py -s 0; | |
ding -m dist --module coordinator -c /ding/cartpole_dqn_config_k8s.py.pkl -s 0 -cdp $COORDINATOR_PORT | |
ports: | |
- name: di-port | |
containerPort: 22270 | |
volumeMounts: | |
- name: work-dir | |
mountPath: /ding | |
collector: | |
template: | |
spec: | |
containers: | |
- name: di-container | |
image: diorchestrator/ding:v0.1.1 | |
imagePullPolicy: IfNotPresent | |
env: | |
- name: PYTHONUNBUFFERED | |
value: "1" | |
command: ["/bin/bash", "-c",] | |
args: | |
- | | |
ding -m dist --module collector -c /ding/cartpole_dqn_config_k8s.py.pkl -s 0 -clp $COLLECTOR_PORT | |
ports: | |
- name: di-port | |
containerPort: 22270 | |
volumeMounts: | |
- name: work-dir | |
mountPath: /ding | |
learner: | |
template: | |
spec: | |
containers: | |
- name: di-container | |
image: diorchestrator/ding:v0.1.1 | |
imagePullPolicy: IfNotPresent | |
env: | |
- name: PYTHONUNBUFFERED | |
value: "1" | |
command: ["/bin/bash", "-c",] | |
args: | |
- | | |
ding -m dist --module spawn_learner -c /ding/cartpole_dqn_config_k8s.py.pkl -s 0 -lp $LEARNER_PORT | |
ports: | |
- name: di-port | |
containerPort: 22270 | |
volumeMounts: | |
- name: cache-volume | |
mountPath: /dev/shm | |
- name: work-dir | |
mountPath: /ding |