我正在使用 Pytorch 对一系列图像进行分类。神经网络定义如下:
model = models.vgg16(pretrained=True)
model.cuda()
for param in model.parameters(): param.requires_grad = False
classifier = nn.Sequential(OrderedDict([
('fc1', nn.Linear(25088, 4096)),
('relu', nn.ReLU()),
('fc2', nn.Linear(4096, 102)),
('output', nn.LogSoftmax(dim=1))
]))
model.classifier = classifier
Run Code Online (Sandbox Code Playgroud)
标准和优化器如下:
criterion = nn.NLLLoss()
optimizer = optim.Adam(model.classifier.parameters(), lr=0.001)
Run Code Online (Sandbox Code Playgroud)
我的验证函数如下:
def validation(model, testloader, criterion):
test_loss = 0
accuracy = 0
for images, labels in testloader:
images.resize_(images.shape[0], 784)
output = model.forward(images)
test_loss += criterion(output, labels).item()
ps = torch.exp(output)
equality = (labels.data == ps.max(dim=1)[1])
accuracy += equality.type(torch.FloatTensor).mean()
return test_loss, accuracy
Run Code Online (Sandbox Code Playgroud)
这是引发以下错误的代码片段:
运行时错误:输入的尺寸小于预期 …
我在R中运行以下脚本.如果我使用%do%而不是%dopar%,则脚本运行正常.但是,如果在外部循环中我使用%dopar%,则循环将永远运行而不会抛出任何错误(内存使用量会不断增加,直到内存不足为止).我正在使用16个核心.
library(parallel)
library(foreach)
library(doSNOW)
library(dplyr)
NumberOfCluster <- 16
cl <- makeCluster(NumberOfCluster)
registerDoSNOW(cl)
foreach(i = UNSPSC_list, .packages = c('data.table', 'dplyr'), .verbose = TRUE) %dopar%
{
terms <- as.data.table(unique(gsub(" ", "", unlist(terms_list_by_UNSPSC$Terms[which(substr(terms_list_by_UNSPSC$UNSPSC,1,6) == i)]))))
temp <- inner_join(N_of_UNSPSCs_by_Term, terms, on = 'V1')
temp$V2 <- 1/as.numeric(temp$V2)
temp <- temp[order(temp$V2, decreasing = TRUE),]
names(temp) <- c('Term','Imp')
ABNs <- unique(UNSPSCs_per_ABN[which(substr(UNSPSCs_per_ABN$UNSPSC,1,4) == substr(i,1,4)), 1])
predictions <- as.numeric(vector())
predictions <- foreach (j = seq(1 : nrow(train)), .combine = 'c', .packages = 'dplyr') %do%
{
descr <- names(which(!is.na(train[j,]) == …
Run Code Online (Sandbox Code Playgroud) 使用以下方法在Pytorch中保存模型时:
torch.save(model, 'checkpoint.pth')
Run Code Online (Sandbox Code Playgroud)
我收到以下警告:
/opt/conda/lib/python3.6/site-packages/torch/serialization.py:193:UserWarning:无法检索类型为Network的容器的源代码。加载后不会检查其正确性。“类型” + obj。名称 +“。不会被选中”
当我加载它时,出现以下错误:
state_dict = torch.load('checkpoint_state_dict.pth')
model = torch.load('checkpoint.pth')
model.load_state_dict(state_dict)
AttributeError Traceback (most recent call last)
<ipython-input-2-6a79854aef0f> in <module>()
2 state_dict = torch.load('checkpoint_state_dict.pth')
3 model = 0
----> 4 model = torch.load('checkpoint.pth')
5 model.load_state_dict(state_dict)
/opt/conda/lib/python3.6/site-packages/torch/serialization.py in load(f, map_location, pickle_module)
301 f = open(f, 'rb')
302 try:
--> 303 return _load(f, map_location, pickle_module)
304 finally:
305 if new_fd:
/opt/conda/lib/python3.6/site-packages/torch/serialization.py in _load(f, map_location, pickle_module)
467 unpickler = pickle_module.Unpickler(f)
468 unpickler.persistent_load = persistent_load
--> 469 result …
Run Code Online (Sandbox Code Playgroud) 我目前正在使用 future 包进行并行化,如下所示:
plan(multisession, gc = TRUE)
standardised_addresses1 <- future_lapply(1:20000, function(x) x*x)
Run Code Online (Sandbox Code Playgroud)
问题是它使用了服务器上的所有 CPU。我想通过设置如下参数来限制使用的CPU数量:workers = 18
我必须做日期之间的差异并返回天数。日期格式如下:
12/9/2011 12:00:00 上午
有谁知道如何在不使用 lubridate 的情况下进行差异化处理?
我需要将 data.tables 附加到一个空列表,通过调用索引我可以获得整个数据表。我现在得到的是附加数据表的列的列表,以便在特定索引处而不是获取数据表,而是从这些表之一获取列。
empty_list <- list()
dt<-data.table(c(1,2,3,4,5,6), c(4,5,6,7,8,9))
empty_list <- append(empty_list, dt)
empty_list[1]
Run Code Online (Sandbox Code Playgroud) 我正在 Pytorch 中构建一个神经网络,它应该可以跨 102 个类别进行分类。
我有以下验证功能:
def validation(model, testloader, criterion):
test_loss = 0
accuracy = 0
for inputs, classes in testloader:
inputs = inputs.to('cuda')
output = model.forward(inputs)
test_loss += criterion(output, labels).item()
ps = torch.exp(output)
equality = (labels.data == ps.max(dim=1)[1])
accuracy += equality.type(torch.FloatTensor).mean()
return test_loss, accuracy
Run Code Online (Sandbox Code Playgroud)
训练代码(调用validation
):
epochs = 3
print_every = 40
steps = 0
running_loss = 0
testloader = dataloaders['test']
# change to cuda
model.to('cuda')
for e in range(epochs):
running_loss = 0
for ii, (inputs, labels) in …
Run Code Online (Sandbox Code Playgroud) 如何转换字符串:
a <- "c(\"4\", \"5\", \"7\", \"8\", \"9\", \"10\")"
Run Code Online (Sandbox Code Playgroud)
到值的向量:4,5,7,8,9,10?
我有一个 pandas 数据框“A”,其中“日期”列包含以下格式的时间戳:
2020-06-09 13:30:11.359497
我需要计算每行与前一行之间的时间差(以分钟为单位)。我尝试过 Timedelta、shift 和 diff。