예제 #1
0
def main():
    print "Content-type: text/html\n\n"
    cgitb.enable()

    # process input
    form = cgi.FieldStorage()
    xml_feedback = form.getfirst('xmlFeedback', 'None')
    token_number = form.getfirst('token', 'None')

    # open database
    session = get_local_db_session()

    try:
        token = session.query(Token).filter_by(number=token_number).one()
    except NoResultFound:
        print "KO"
        return

    # insert the retrived dialogueID into the xmlFeedback
    xml_feedback = xml_feedback.replace(
        "<dialogueId></dialogueId>",
        "<dialogueId>" + token.submission.dialogue_id + "</dialogueId>")
    worker_id = get_worker_id(xml_feedback)
    phone = token.submission.dialogue_id.rsplit("-", 1)[1]

    try:
        curr_worker = session.query(Worker).filter_by(
            worker_id=worker_id).one()
    except NoResultFound:
        curr_worker = Worker(worker_id=worker_id, phone_number=phone)
        session.add(curr_worker)

    # save submitted data
    submission = token.submission
    submission.data = xml_feedback
    submission.worker = curr_worker
    submission.timestamp = datetime.datetime.now()

    # free token
    token.submission = None

    session.commit()
def register_worker(platform_info, environment):
    return db.register_worker(Worker(platform_info, environment))
예제 #3
0
import torch as th
from utils import SharedAdam
from model import Worker, Net
import gym
import torch.multiprocessing as mp

env = gym.make('CartPole-v0')
n_action = env.action_space.n
n_state = env.observation_space.shape[0]

global_net = Net(n_state, n_action)
global_net.share_memory()
optA = SharedAdam(global_net.policy.parameters(), lr=1e-4, betas=(0.92, 0.999))
optC = SharedAdam(global_net.v.parameters(), lr=1e-4, betas=(0.92, 0.999))
workers = [Worker(global_net, optA, optC, str(i)) for i in range(8)]
[w.start() for w in workers]

[w.join() for w in workers]