gomoku / DI-engine /ding /entry /tests /config /dijob-cartpole.yaml
zjowowen's picture
init space
079c32c
raw
history blame
7.03 kB
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