本文整理汇总了Python中learner.Learner方法的典型用法代码示例。如果您正苦于以下问题:Python learner.Learner方法的具体用法?Python learner.Learner怎么用?Python learner.Learner使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类learner
的用法示例。
在下文中一共展示了learner.Learner方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: import learner [as 别名]
# 或者: from learner import Learner [as 别名]
def __init__(self, args, config):
"""
:param args:
"""
super(Meta, self).__init__()
self.update_lr = args.update_lr
self.meta_lr = args.meta_lr
self.n_way = args.n_way
self.k_spt = args.k_spt
self.k_qry = args.k_qry
self.task_num = args.task_num
self.update_step = args.update_step
self.update_step_test = args.update_step_test
self.net = Learner(config, args.imgc, args.imgsz)
self.meta_optim = optim.Adam(self.net.parameters(), lr=self.meta_lr)
示例2: evaluate
# 需要导入模块: import learner [as 别名]
# 或者: from learner import Learner [as 别名]
def evaluate(f, optimizer, best_sum_loss,best_final_loss, best_flag,lr):
print('\n --> evalute the model')
STEPS = 100
LSTM_learner = Learner(f , optimizer, STEPS, eval_flag=True,reset_theta=True, retain_graph_flag=True)
lstm_losses, sum_loss = LSTM_learner()
try:
best = torch.load('best_loss.txt')
except IOError:
print ('can not find best_loss.txt')
pass
else:
best_sum_loss = best[0]
best_final_loss = best[1]
print("load_best_final_loss and sum_loss")
if lstm_losses[-1] < best_final_loss and sum_loss < best_sum_loss:
best_final_loss = lstm_losses[-1]
best_sum_loss = sum_loss
print('\n\n===> best of final LOSS[{}]: = {}, best_sum_loss ={}'.format(STEPS, best_final_loss,best_sum_loss))
torch.save(optimizer.state_dict(),'best_LSTM_optimizer.pth')
torch.save([best_sum_loss ,best_final_loss,lr ],'best_loss.txt')
best_flag = True
return best_sum_loss, best_final_loss, best_flag
示例3: Learning_to_learn_global_training
# 需要导入模块: import learner [as 别名]
# 或者: from learner import Learner [as 别名]
def Learning_to_learn_global_training(f,optimizer, global_taining_steps, optimizer_Train_Steps, UnRoll_STEPS, Evaluate_period ,optimizer_lr):
""" Training the LSTM optimizer . Learning to learn
Args:
`optimizer` : DeepLSTMCoordinateWise optimizer model
`global_taining_steps` : how many steps for optimizer training optimizer
`optimizer_Train_Steps` : how many step for optimizer opimitzing each function sampled from IID.
`UnRoll_STEPS` :: how many steps for LSTM optimizer being unrolled to construct a computing graph to BPTT.
"""
global_loss_list = []
Total_Num_Unroll = optimizer_Train_Steps // UnRoll_STEPS
adam_global_optimizer = torch.optim.Adam(optimizer.parameters(),lr = optimizer_lr)
LSTM_Learner = Learner(f, optimizer, UnRoll_STEPS, retain_graph_flag=True, reset_theta=True,reset_function_from_IID_distirbution = False)
#这里考虑Batchsize代表IID的化,那么就可以不需要每次都重新IID采样
best_sum_loss = 999999
best_final_loss = 999999
best_flag = False
for i in range(global_taining_steps):
print('\n=============> global training steps: {}'.format(i))
for num in range(Total_Num_Unroll):
start = timer()
_,global_loss = LSTM_Learner(num)
adam_global_optimizer.zero_grad()
global_loss.backward()
adam_global_optimizer.step()
global_loss_list.append(global_loss.detach_())
time = timer() - start
print('--> time consuming [{:.4f}s] optimizer train steps : [{}] | Global_Loss = [{:.1f}]'.format(time,(num +1)* UnRoll_STEPS,global_loss))
if (i + 1) % Evaluate_period == 0:
best_sum_loss, best_final_loss, best_flag = evaluate(f, optimizer,best_sum_loss,best_final_loss,best_flag,optimizer_lr)
return global_loss_list,best_flag
示例4: train
# 需要导入模块: import learner [as 别名]
# 或者: from learner import Learner [as 别名]
def train():
tf.reset_default_graph()
# Set random seeds for reproducability
np.random.seed(train_params.RANDOM_SEED)
random.seed(train_params.RANDOM_SEED)
tf.set_random_seed(train_params.RANDOM_SEED)
# Initialise prioritised experience replay memory
PER_memory = PrioritizedReplayBuffer(train_params.REPLAY_MEM_SIZE, train_params.PRIORITY_ALPHA)
# Initialise Gaussian noise generator
gaussian_noise = GaussianNoiseGenerator(train_params.ACTION_DIMS, train_params.ACTION_BOUND_LOW, train_params.ACTION_BOUND_HIGH, train_params.NOISE_SCALE)
# Create session
config = tf.ConfigProto(allow_soft_placement=True)
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
# Create threads for learner process and agent processes
threads = []
# Create threading events for communication and synchronisation between the learner and agent threads
run_agent_event = threading.Event()
stop_agent_event = threading.Event()
# with tf.device('/device:GPU:0'):
# Initialise learner
learner = Learner(sess, PER_memory, run_agent_event, stop_agent_event)
# Build learner networks
learner.build_network()
# Build ops to update target networks
learner.build_update_ops()
# Initialise variables (either from ckpt file if given, or from random)
learner.initialise_vars()
# Get learner policy (actor) network params - agent needs these to copy latest policy params periodically
learner_policy_params = learner.actor_net.network_params + learner.actor_net.bn_params
threads.append(threading.Thread(target=learner.run))
for n_agent in range(train_params.NUM_AGENTS):
# Initialise agent
agent = Agent(sess, train_params.ENV, train_params.RANDOM_SEED, n_agent)
# Build network
agent.build_network(training=True)
# Build op to periodically update agent network params from learner network
agent.build_update_op(learner_policy_params)
# Create Tensorboard summaries to save episode rewards
if train_params.LOG_DIR is not None:
agent.build_summaries(train_params.LOG_DIR + ('/agent_%02d' % n_agent))
threads.append(threading.Thread(target=agent.run, args=(PER_memory, gaussian_noise, run_agent_event, stop_agent_event)))
for t in threads:
t.start()
for t in threads:
t.join()
sess.close()