Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def get_args():
opts = parser.parse_args()
if opts.cuda and not torch.cuda.is_available():
sys.exit('Cuda is not available.')
return opts
def inception_score(imgs, cuda=True, batch_size=32, resize=False, splits=1):
"""Computes the inception score of the generated images imgs
imgs -- Torch dataset of (3xHxW) numpy images normalized in the range [-1, 1]
cuda -- whether or not to run on GPU
batch_size -- batch size for feeding into Inception v3
splits -- number of splits
"""
N = len(imgs)
assert batch_size > 0
assert N > batch_size
# Set up dtype
if cuda:
dtype = torch.cuda.FloatTensor
else:
if torch.cuda.is_available():
print("WARNING: You have a CUDA device, so you should probably set cuda=True")
dtype = torch.FloatTensor
# Set up dataloader
dataloader = torch.utils.data.DataLoader(imgs, batch_size=batch_size)
# Load inception model
inception_model = inception_v3(pretrained=True, transform_input=False).type(dtype)
inception_model.eval();
up = nn.Upsample(size=(299, 299), mode='bilinear').type(dtype)
def get_pred(x):
if resize:
x = up(x)
x = inception_model(x)
def evaluate():
## setup
cfg = config_factory['resnet_cityscapes']
args = parse_args()
if not args.local_rank == -1:
torch.cuda.set_device(args.local_rank)
dist.init_process_group(
backend = 'nccl',
init_method = 'tcp://127.0.0.1:{}'.format(cfg.port),
world_size = torch.cuda.device_count(),
rank = args.local_rank
)
setup_logger(cfg.respth)
else:
FORMAT = '%(levelname)s %(filename)s(%(lineno)d): %(message)s'
log_level = logging.INFO
if dist.is_initialized() and dist.get_rank()!=0:
log_level = logging.ERROR
logging.basicConfig(level=log_level, format=FORMAT, stream=sys.stdout)
logger = logging.getLogger()
## model
def sample_discrete_action(args, net, obs_var, prev_action=None):
start_time = time.time()
obs = np.repeat(np.expand_dims(obs_var, axis=0), args.batch_size, axis=0)
obs = Variable(torch.from_numpy(obs), requires_grad=False).type(torch.Tensor)
if torch.cuda.is_available():
obs = obs.cuda()
prob = torch.ones(args.num_total_act, args.num_total_act) / float(args.num_total_act)
with torch.no_grad():
for i in range(6):
all_actions = generate_action_sample(args, prob, 6 * args.batch_size, args.pred_step, prev_action)
one_hot_actions = generate_one_hot_actions(all_actions, args.num_total_act)
if torch.cuda.is_available():
one_hot_actions = one_hot_actions.cuda()
actions = Variable(one_hot_actions, requires_grad=False)
loss = get_action_loss(args, net, obs, actions) # needs updating
all_losses = from_variable_to_numpy(loss)
if i < 5:
indices = np.argsort(all_losses)[:args.batch_size]
prob = generate_probs(args, all_actions[indices], prev_action)
else:
idx = np.argmin(all_losses)
which_action = int(from_variable_to_numpy(all_actions)[idx, 0])
print('Sampling takes %0.2f seconds, selected action: %d.' % (time.time() - start_time, which_action))
return which_action
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
]))
'''
dataloader = torch.utils.data.DataLoader(dataset, batch_size=opt.batchsize,
shuffle=True, num_workers=int(2))
if opt.manualSeed is None:
opt.manualSeed = random.randint(1, 10000)
print("Random Seed: ", opt.manualSeed)
random.seed(opt.manualSeed)
torch.manual_seed(opt.manualSeed)
if opt.cuda:
torch.cuda.manual_seed_all(opt.manualSeed)
torch.cuda.set_device(opt.gpu_ids[0])
cudnn.benchmark = True
def weight_filler(m):
classname = m.__class__.__name__
if classname.find('Conv' or 'SNConv') != -1:
m.weight.data.normal_(0.0, 0.02)
elif classname.find('BatchNorm') != -1:
m.weight.data.normal_(1.0, 0.02)
m.bias.data.fill_(0)
n_dis = opt.n_dis
nz = opt.nz
G = SNResGenerator(64, nz, 4)
SND = SNResDiscriminator(64, 4)
import torch
import torch.optim as optim
from transformers import *
class Configuracao(dict):
def __init__(self, **kwargs):
super().__init__(**kwargs)
for k, v in kwargs.items():
setattr(self, k, v)
def set(self, key, val):
self[key] = val
setattr(self, key, val)
torch.cuda.is_available()
config = Configuracao(
testing=False,
bert_model_name="bert-base-multilingual-uncased",
max_lr=3e-5,
epochs=12,
use_fp16=True,
bs=64,
discriminative=False,
max_seq_len=128,
)
from pytorch_pretrained_bert import BertTokenizer
bert_token = BertTokenizer.from_pretrained(
config.bert_model_name,
return s == 'True'
parser = argparse.ArgumentParser(description='Approximation Training')
parser.add_argument('--model', '-m', type=str, default='ResNet20', help='Model Arch')
parser.add_argument('--dataset', '-d', type=str, default='CIFAR10', help='Dataset')
parser.add_argument('--optimizer', '-o', type=str, default='Adam', help='Optimizer Method')
parser.add_argument('--bitW', '-bw', type=int, default=1, help='Number of quantization bits')
parser.add_argument('--quantize_portion','-q', nargs='+', help='Variation of Quantization Portion', required=True)
parser.add_argument('--exp_spec', '-e', type=str, default='', help='Experiment Specification')
parser.add_argument('--init_lr', '-lr', type=float, default=1e-3, help='Initial Learning rate')
parser.add_argument('--n_epoch', '-n', type=int, default=100, help='Maximum training epochs')
parser.add_argument('--batch_size', '-bs', type=int, default=128, help='Batch size')
args = parser.parse_args()
# ------------------------------------------
use_cuda = torch.cuda.is_available()
model_name = args.model
dataset_name = args.dataset
quantize_portion_list = args.quantize_portion
MAX_EPOCH = args.n_epoch
optimizer_type = args.optimizer # ['SGD', 'SGD-M', 'adam']
dataset_type = 'large' if dataset_name in ['ImageNet'] else 'small'
batch_size = args.batch_size
bitW = args.bitW
# ------------------------------------------
print(args)
input('Take a look')
# Integerize the quantization portion
for idx, quantize_portion in enumerate(quantize_portion_list):
quantize_portion_list[idx] = int(quantize_portion)
def compute_entity_attr_reps(model,dataloader,exp_const):
num_classes = len(dataloader.dataset.wnids)
rep_dim = model.net.resnet_layers.fc.weight.size(1)
print('Allocating memory for storing entity-attr reps ...')
reps = np.zeros([num_classes,rep_dim],dtype=np.float32)
num_imgs_per_class = np.zeros([num_classes],dtype=np.int32)
img_mean = Variable(torch.cuda.FloatTensor(model.img_mean),volatile=True)
img_std = Variable(torch.cuda.FloatTensor(model.img_std),volatile=True)
# Set mode
model.net.eval()
print('Aggregating image features ...')
for it,data in enumerate(tqdm(dataloader)):
# Forward pass
imgs = Variable(data['img'].cuda().float()/255.,volatile=True)
imgs = dataloader.dataset.normalize(
imgs,
img_mean,
img_std)
imgs = imgs.permute(0,3,1,2)
last_layer_feats_normalized, _ = model.net.forward_features_only(imgs)
last_layer_feats_normalized = \
def trainNetwork(boards, outputs, EPOCHS=1, BATCH_SIZE=1000, LR=0.001,
loadDirectory='none.pt',
saveDirectory='network1.pt', OUTPUT_ARRAY_LEN=4504):
outputs = torch.from_numpy(outputs)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(device)
data = TrainingDataset(boards, outputs) # use answers instead of actions when choosing CEL
trainLoader = torch.utils.data.DataLoader(dataset=data, batch_size=BATCH_SIZE, shuffle=True)
# to create a prediction, create a new dataset with input of the states, and output should just be np.zeros()
# this is a convolutional neural network
#model = ChessConvNet(OUTPUT_ARRAY_LEN).double()
# this is a residual network
model = ChessResNet.ResNetMainBottleNeck().double()
try:
model = torch.load(loadDirectory)
except:
# input gate bias for GRUs
if self.config.mode == 'train' and self.config.checkpoint is None:
print('Parameter initiailization')
for name, param in self.model.named_parameters():
if 'weight_hh' in name:
print('\t' + name)
nn.init.orthogonal_(param)
# bias_hh is concatenation of reset, input, new gates
# only set the input gate bias to 2.0
if 'bias_hh' in name:
print('\t' + name)
dim = int(param.size(0) / 3)
param.data[dim:2 * dim].fill_(2.0)
if torch.cuda.is_available() and cuda:
self.model.cuda()
# Overview Parameters
print('Model Parameters')
for name, param in self.model.named_parameters():
print('\t' + name + '\t', list(param.size()))
if self.config.checkpoint:
self.load_model(self.config.checkpoint)
if self.is_train:
#self.writer = TensorboardWriter(self.config.logdir)
self.optimizer = self.config.optimizer(
filter(lambda p: p.requires_grad, self.model.parameters()),
lr=self.config.learning_rate)