from scipy import ndimage, misc
import image_segment
from environment import Env
from agent import R_Learner
import numpy as np

if __name__ == "__main__":
    img = ndimage.imread('butterfly.jpg')
    img = misc.imresize(img, size=0.0625)

    search_env = img
    patch_src = img
    K = 50
    labels = image_segment.segment(img, K)
    label = 15
    patch_indices = np.where(labels == label)
    patch_pixels = img[patch_indices]

    indices_at_origin = (patch_indices[0] - np.min(patch_indices[0]),
                         patch_indices[1] - np.min(patch_indices[1]))
    env = Env(img)
    agent = R_Learner(patch_pixels, indices_at_origin, env)

    while True:
        state = env.get_state()
        action = agent.get_action(state)
        reward, next_state = env.take_action(action)
        agent.learn(state, action, reward, next_state)
Beispiel #2
0
    assert len(np.concatenate(reg_periods)) is len(
        np.unique(np.concatenate(reg_periods)))

    # Annualized volatility on risky asset in different regimes:
    for k, v in regimes.items():
        ann_vol = np.squeeze(v["sigma"][1] * np.sqrt(252))
        print(
            "Annualized volatility of log-returns on risky asset "
            "in regime", k, "=", "{0:.5f}".format(ann_vol))

    # terminal wealth statistics for all risky allocation:
    lw = []
    for i in range(train_episodes + round(init_d_size / horizon)):
        env.reset()
        while not env.done:
            _, _, _, _ = env.take_action(action=1.0)
        lw.append(np.sum(env.p))

    print("\nIf fully invested into the risky asset (over ",
          train_episodes + round(init_d_size / horizon), "runs):")
    print("-- Mean terminal wealth =", "{0:.2f}".format(np.mean(lw)))
    print("-- Maximum terminal wealth =", "{0:.2f}".format(np.max(lw)))
    print("-- Minimum terminal wealth =", "{0:.2f}".format(np.min(lw)))
    print("-- Utility of mean terminal wealth =",
          "{0:.5f}".format(crra_utility(np.mean(lw), env.theta)))
    print("-- Mean utility of terminal wealth =",
          "{0:.5f}".format(np.mean(crra_utility(lw, env.theta))))
    print("-- For comparison: initial utility =",
          "{0:.5f}".format(crra_utility(env.w, env.theta)))
    del lw