本文整理汇总了Python中torch.optim.Adam方法的典型用法代码示例。如果您正苦于以下问题:Python optim.Adam方法的具体用法?Python optim.Adam怎么用?Python optim.Adam使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类torch.optim
的用法示例。
在下文中一共展示了optim.Adam方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_optimizer
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def create_optimizer(args, optim_params):
if args.optimizer == 'sgd':
return optim.SGD(optim_params, args.lr, momentum=args.momentum,
weight_decay=args.weight_decay)
elif args.optimizer == 'adagrad':
return optim.Adagrad(optim_params, args.lr, weight_decay=args.weight_decay)
elif args.optimizer == 'adam':
return optim.Adam(optim_params, args.lr, betas=(args.beta1, args.beta2),
weight_decay=args.weight_decay)
elif args.optimizer == 'amsgrad':
return optim.Adam(optim_params, args.lr, betas=(args.beta1, args.beta2),
weight_decay=args.weight_decay, amsgrad=True)
elif args.optimizer == 'adabound':
from adabound import AdaBound
return AdaBound(optim_params, args.lr, betas=(args.beta1, args.beta2),
final_lr=args.final_lr, gamma=args.gamma,
weight_decay=args.weight_decay)
else:
assert args.optimizer == 'amsbound'
from adabound import AdaBound
return AdaBound(optim_params, args.lr, betas=(args.beta1, args.beta2),
final_lr=args.final_lr, gamma=args.gamma,
weight_decay=args.weight_decay, amsbound=True)
示例2: load_model
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def load_model(config, num_train_steps, label_list):
device = torch.device("cuda")
n_gpu = torch.cuda.device_count()
model = BertMRCNER(config, )
model.to(device)
if n_gpu > 1:
model = torch.nn.DataParallel(model)
# prepare optimzier
param_optimizer = list(model.named_parameters())
no_decay = ["bias", "LayerNorm.bias", "LayerNorm.weight"]
optimizer_grouped_parameters = [
{"params": [p for n, p in param_optimizer if not any(nd in n for nd in no_decay)], "weight_decay": 0.01},
{"params": [p for n, p in param_optimizer if any(nd in n for nd in no_decay)], "weight_decay": 0.0}]
# optimizer = Adam(optimizer_grouped_parameters, lr=config.learning_rate)
optimizer = BertAdam(optimizer_grouped_parameters, lr=config.learning_rate, warmup=config.warmup_proportion, t_total=num_train_steps, max_grad_norm=config.clip_grad)
return model, optimizer, device, n_gpu
示例3: load_model
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def load_model(config, num_train_steps, label_list):
# device = torch.device(torch.cuda.is_available())
device = torch.device("cuda")
n_gpu = torch.cuda.device_count()
model = BertTagger(config, num_labels=len(label_list))
# model = BertForTagger.from_pretrained(config.bert_model, num_labels=13)
model.to(device)
if n_gpu > 1:
model = torch.nn.DataParallel(model)
# prepare optimzier
param_optimizer = list(model.named_parameters())
no_decay = ["bias", "LayerNorm.bias", "LayerNorm.weight"]
optimizer_grouped_parameters = [
{"params": [p for n, p in param_optimizer if not any(nd in n for nd in no_decay)], "weight_decay": 0.01},
{"params": [p for n, p in param_optimizer if any(nd in n for nd in no_decay)], "weight_decay": 0.0}]
# optimizer = Adam(optimizer_grouped_parameters, lr=config.learning_rate)
optimizer = BertAdam(optimizer_grouped_parameters, lr=config.learning_rate, warmup=config.warmup_proportion, t_total=num_train_steps, max_grad_norm=config.clip_grad)
return model, optimizer, device, n_gpu
示例4: main
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def main():
best_acc = 0
device = 'cuda' if torch.cuda.is_available() else 'cpu'
print('==> Preparing data..')
transforms_train = transforms.Compose([
transforms.RandomCrop(32, padding=4),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))])
dataset_train = CIFAR10(root='../data', train=True, download=True,
transform=transforms_train)
train_loader = DataLoader(dataset_train, batch_size=args.batch_size,
shuffle=True, num_workers=args.num_worker)
# there are 10 classes so the dataset name is cifar-10
classes = ('plane', 'car', 'bird', 'cat', 'deer',
'dog', 'frog', 'horse', 'ship', 'truck')
print('==> Making model..')
net = pyramidnet()
net = nn.DataParallel(net)
net = net.to(device)
num_params = sum(p.numel() for p in net.parameters() if p.requires_grad)
print('The number of parameters of model is', num_params)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=args.lr)
# optimizer = optim.SGD(net.parameters(), lr=args.lr,
# momentum=0.9, weight_decay=1e-4)
train(net, criterion, optimizer, train_loader, device)
示例5: __init__
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def __init__(self, model, corpus, args, name, tune_pi_only):
self.model = model
self.corpus = corpus
self.args = args
self.name = name
self.raw_goal = None
self.vec_goals_list = None
self.logprobs = None
print("Do we only tune the policy: {}".format(tune_pi_only))
self.opt = optim.SGD(
[p for n, p in self.model.named_parameters() if 'c2z' in n or not tune_pi_only],
lr=self.args.rl_lr,
momentum=self.args.momentum,
nesterov=(self.args.nesterov and self.args.momentum > 0))
# self.opt = optim.Adam(self.model.parameters(), lr=0.01)
# self.opt = optim.RMSprop(self.model.parameters(), lr=0.0005)
self.all_rewards = []
self.all_grads = []
self.model.train()
示例6: get_optimizer
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def get_optimizer(gradient_model, config):
if config['support'].get('flexible_step', False):
stop_parameters = list(filter(lambda p: p.requires_grad, gradient_model.stop_gate.parameters()))
else:
stop_parameters = []
init_parameters = list(filter(lambda p: p.requires_grad, gradient_model.model.parameters()))
update_parameters = list(filter(lambda p: p.requires_grad, gradient_model.meta_lstms.parameters()))
parameters = [
{'params': init_parameters, 'lr': config['lr']['init_lr']},
{'params': update_parameters, 'lr': config['lr']['update_lr']},
{'params': stop_parameters, 'lr': config['lr']['stop_lr']}
]
optimizer = optim.Adam(parameters, **config['optim'])
scheduler = torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='max', factor=0.2, patience=2,
verbose=True, min_lr=1e-6)
return optimizer, scheduler
示例7: get_optimizer
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def get_optimizer(option, params):
opt_alg = 'sgd' if not hasattr(option, 'optim') else option.optim
if opt_alg == 'sgd':
optimizer = optim.SGD(params,
lr=option.lr_rate,
momentum=0.9,
nesterov=True,
weight_decay=option.l2_reg_weight)
if opt_alg == 'adam':
optimizer = optim.Adam(params,
lr=option.lr_rate,
betas=(0.9, 0.999),
weight_decay=option.l2_reg_weight)
return optimizer
示例8: __init__
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def __init__(self, args):
self.args = args
# ------------------------------------------------Dataset---------------------------------------------- #
self.data = BenchmarkDataset(root=args.dataset_path, npoints=args.point_num, uniform=True, class_choice=args.class_choice)
self.dataLoader = torch.utils.data.DataLoader(self.data, batch_size=args.batch_size, shuffle=True, pin_memory=True, num_workers=4)
print("Training Dataset : {} prepared.".format(len(self.data)))
# ----------------------------------------------------------------------------------------------------- #
# -------------------------------------------------Module---------------------------------------------- #
self.G = Generator(batch_size=args.batch_size, features=args.G_FEAT, degrees=args.DEGREE, support=args.support).to(args.device)
self.D = Discriminator(batch_size=args.batch_size, features=args.D_FEAT).to(args.device)
self.optimizerG = optim.Adam(self.G.parameters(), lr=args.lr, betas=(0, 0.99))
self.optimizerD = optim.Adam(self.D.parameters(), lr=args.lr, betas=(0, 0.99))
self.GP = GradientPenalty(args.lambdaGP, gamma=1, device=args.device)
print("Network prepared.")
# ----------------------------------------------------------------------------------------------------- #
# ---------------------------------------------Visualization------------------------------------------- #
self.vis = visdom.Visdom(port=args.visdom_port)
assert self.vis.check_connection()
print("Visdom connected.")
# ----------------------------------------------------------------------------------------------------- #
示例9: __init__
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def __init__(self, config, net):
self.log_dir = config.log_dir
self.model_dir = config.model_dir
self.net = net
self.clock = TrainClock()
self.device = config.device
self.use_triplet = config.use_triplet
self.use_footvel_loss = config.use_footvel_loss
# set loss function
self.mse = nn.MSELoss()
self.tripletloss = nn.TripletMarginLoss(margin=config.triplet_margin)
self.triplet_weight = config.triplet_weight
self.foot_idx = config.foot_idx
self.footvel_loss_weight = config.footvel_loss_weight
# set optimizer
self.optimizer = optim.Adam(self.net.parameters(), config.lr)
self.scheduler = optim.lr_scheduler.ExponentialLR(self.optimizer, 0.99)
示例10: get_network
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def get_network(net_type, params, train=True):
net_params = params[net_type]
net = net_params['network'](net_params['input_channel'],
net_params['channels'],
net_params['output_channel'])
if params['GPU']:
net.cuda()
if train:
net.train()
optimizer = optim.Adam(net.parameters(),
lr=params['lr'],
betas=(params['beta1'], params['beta2']))
else:
net.eval()
net.load_state_dict(torch.load(net_params['model_path']))
optimizer = None
return net, optimizer
示例11: load_session
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def load_session():
global sess_path, model_config, device, learning_rate, reset_optimizer
try:
sess = torch.load(sess_path)
if 'model_config' in sess and sess['model_config'] != model_config:
model_config = sess['model_config']
print('Use session config instead:')
print(utils.dict2params(model_config))
model_state = sess['model_state']
optimizer_state = sess['model_optimizer_state']
print('Session is loaded from', sess_path)
sess_loaded = True
except:
print('New session')
sess_loaded = False
model = PerformanceRNN(**model_config).to(device)
optimizer = optim.Adam(model.parameters(), lr=learning_rate)
if sess_loaded:
model.load_state_dict(model_state)
if not reset_optimizer:
optimizer.load_state_dict(optimizer_state)
return model, optimizer
示例12: __init__
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def __init__(self, state_dim, action_dim, max_action):
self.actor = Actor(state_dim, action_dim, max_action).to(device)
self.actor_target = Actor(state_dim, action_dim, max_action).to(device)
self.actor_target.load_state_dict(self.actor.state_dict())
self.actor_optimizer = optim.Adam(self.actor.parameters(), lr=1e-4)
self.critic = Critic(state_dim, action_dim).to(device)
self.critic_target = Critic(state_dim, action_dim).to(device)
self.critic_target.load_state_dict(self.critic.state_dict())
self.critic_optimizer = optim.Adam(self.critic.parameters(), lr=1e-3)
self.replay_buffer = Replay_buffer()
self.writer = SummaryWriter(directory)
self.num_critic_update_iteration = 0
self.num_actor_update_iteration = 0
self.num_training = 0
示例13: __init__
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def __init__(self):
super(SAC, self).__init__()
self.policy_net = Actor(state_dim).to(device)
self.value_net = Critic(state_dim).to(device)
self.Q_net = Q(state_dim, action_dim).to(device)
self.Target_value_net = Critic(state_dim).to(device)
self.replay_buffer = [Transition] * args.capacity
self.policy_optimizer = optim.Adam(self.policy_net.parameters(), lr=args.learning_rate)
self.value_optimizer = optim.Adam(self.value_net.parameters(), lr=args.learning_rate)
self.Q_optimizer = optim.Adam(self.Q_net.parameters(), lr=args.learning_rate)
self.num_transition = 0 # pointer of replay buffer
self.num_training = 1
self.writer = SummaryWriter('./exp-SAC')
self.value_criterion = nn.MSELoss()
self.Q_criterion = nn.MSELoss()
for target_param, param in zip(self.Target_value_net.parameters(), self.value_net.parameters()):
target_param.data.copy_(param.data)
os.makedirs('./SAC_model/', exist_ok=True)
示例14: __init__
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def __init__(self, state_dim, action_dim, max_action):
self.actor = Actor(state_dim, action_dim, max_action).to(device)
self.actor_target = Actor(state_dim, action_dim, max_action).to(device)
self.critic_1 = Critic(state_dim, action_dim).to(device)
self.critic_1_target = Critic(state_dim, action_dim).to(device)
self.critic_2 = Critic(state_dim, action_dim).to(device)
self.critic_2_target = Critic(state_dim, action_dim).to(device)
self.actor_optimizer = optim.Adam(self.actor.parameters())
self.critic_1_optimizer = optim.Adam(self.critic_1.parameters())
self.critic_2_optimizer = optim.Adam(self.critic_2.parameters())
self.actor_target.load_state_dict(self.actor.state_dict())
self.critic_1_target.load_state_dict(self.critic_1.state_dict())
self.critic_2_target.load_state_dict(self.critic_2.state_dict())
self.max_action = max_action
self.memory = Replay_buffer(args.capacity)
self.writer = SummaryWriter(directory)
self.num_critic_update_iteration = 0
self.num_actor_update_iteration = 0
self.num_training = 0
示例15: __init__
# 需要导入模块: from torch import optim [as 别名]
# 或者: from torch.optim import Adam [as 别名]
def __init__(self):
super().__init__(optim.Adam)