小编Pet*_*etr的帖子

Xgboost 转储和加载问题

我在 amazon sagemaker 上训练了我的 xgboost 管道模型并在本地保存文件:

pickle.dump(model, open(file_name, "wb"))
Run Code Online (Sandbox Code Playgroud)

然后移动到本地计算机以推理模式使用模型:

pickle.load(open(file_name, "rb"))

XGBoostError: [11:45:49] ../src/common/json.cc:458: Expecting: """, got: "76 ", around character position: 1
    {L\0\0\0\0\0\0\0
    ^~~~~~~~~
Stack trace:
  [bt] (0) 1   libxgboost.dylib                    0x00000001258a9a54 dmlc::LogMessageFatal::~LogMessageFatal() + 116
  [bt] (1) 2   libxgboost.dylib                    0x00000001258d69be xgboost::JsonReader::Error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) const + 1054
  [bt] (2) 3   libxgboost.dylib                    0x00000001258d7427 xgboost::JsonReader::Expect(char, char) + 279
  [bt] (3) 4   libxgboost.dylib                    0x00000001258d7bfb xgboost::JsonReader::ParseObject() + 331
  [bt] (4) 5   libxgboost.dylib                    0x00000001258d6467 xgboost::JsonReader::Parse() + 439
  [bt] (5) 6   libxgboost.dylib                    0x00000001258dbfbe xgboost::Json::Load(xgboost::StringView) + …
Run Code Online (Sandbox Code Playgroud)

python pickle xgboost

11
推荐指数
1
解决办法
3656
查看次数

使用 dplyr [r] 标准化变量

我想标准化 R 中的变量。我知道如何做到这一点的多种方法。然而,我真的很喜欢使用下面这种方法:

library(tidyverse)

df <- mtcars

df %>% 
  gather() %>% 
  group_by(key) %>% 
  mutate(value = value - mean(value)) %>% 
  ungroup() %>% 
  pivot_wider(names_from = key, values_from = value)
Run Code Online (Sandbox Code Playgroud)

由于某种原因,这种方法不起作用,因为我无法将数据返回到原始格式。所以想请教一下

r dplyr tidyr tidyverse

8
推荐指数
2
解决办法
8334
查看次数

意外的输入数据类型。实际:(tensor(double)) ,预期:(tensor(float))

我正在学习这个新的 ONNX 框架,它允许我们将深度学习(和其他)模型部署到生产中。

然而,我缺少一件事。我认为拥有这样一个框架的主要原因是为了推理目的,例如当我们有一个经过训练的模型并希望在不同的 venv 中使用它时(例如我们不能拥有 PyTorch),该模型仍然可以使用。

我在这里准备了一个“从头开始”的例子:

# Modules
import torch
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
from torch.utils.data import DataLoader, TensorDataset
import torchvision
import onnx
import onnxruntime
import matplotlib.pyplot as plt
import numpy as np


# %config Completer.use_jedi = False

# MNIST Example dataset
train_loader = torch.utils.data.DataLoader(
      torchvision.datasets.MNIST(
          'data', train=True, download=True,
          transform=torchvision.transforms.Compose([
              torchvision.transforms.ToTensor(),
          ])),
      batch_size=800)


# Take data and labels "by hand"
inputs_batch, labels_batch = next(iter(train_loader))


# Simple Model

class CNN(nn.Module):
    def …
Run Code Online (Sandbox Code Playgroud)

numpy pytorch onnx

8
推荐指数
2
解决办法
1万
查看次数

更改路径 PosixPath 对象中的文件名前缀

我需要更改当前文件的前缀。

示例如下:

from pathlib import Path
file = Path('/Users/my_name/PYTHON/Playing_Around/testing_lm.py')
# Current file with destination
print(file)

# Prefix to be used
file_prexif = 'A'

# Hardcoding wanted results.
Path('/Users/my_name/PYTHON/Playing_Around/A_testing_lm.py')
Run Code Online (Sandbox Code Playgroud)

可以看出,硬编码很容易。但是有没有办法自动化这一步呢?我想做的事情有一个伪想法:

str(file).split('/')[-1] = str(file_prexif) + str('_') + str(file).split('/')[-1]
Run Code Online (Sandbox Code Playgroud)

我只想更改PosixPath文件的最后一个元素。但是,不可能仅更改字符串的最后一个元素

python regex string path

5
推荐指数
2
解决办法
1330
查看次数

sklearn 管道中的 PyTorch 训练循环

我现在正在尝试的是在管道中使用 PyTorch,所有预处理都将在管道中处理。

我有能力让它发挥作用。然而,我得到的结果有点偏离。随着训练循环的进行,损失函数似乎没有减少并且陷入困境(大概处于局部最优?)。

我遵循标准 PyTorch 训练循环并将其包装在 fit 方法中,因为这就是 sklearn 想要的:

import torch
from sklearn.base import BaseEstimator, TransformerMixin

import torch.nn.functional as F

from IPython.core.debugger import set_trace

# +
import pandas as pd
import seaborn as sns
import numpy as np

from tqdm import tqdm
import random
# -

df = sns.load_dataset("tips")
df.head()


# +
class LinearRegressionModel(torch.nn.Module, BaseEstimator, TransformerMixin):
 
    def __init__(self, loss_func = torch.nn.MSELoss()):
        super(LinearRegressionModel, self).__init__()
        self.linear = torch.nn.Linear(3, 1)  # One in and one out
        self.loss_func = loss_func
        self.optimizer = torch.optim.SGD(self.parameters(), …
Run Code Online (Sandbox Code Playgroud)

python pipeline scikit-learn pytorch

5
推荐指数
1
解决办法
1905
查看次数

在传单中绘制 sf 类型的对象 [r]

我想问一下如何sf在传单中绘制对象,leaflet package我知道mapview package可以绘制它,但是我更喜欢使用 leafet 包。

我在下面提供了示例:

library(leaflet)
library(eurostat)
library(dplyr)
library(ggplot2)

options(readr.default_locale=readr::locale(tz="Europe/Berlin"))
df60 <- get_eurostat_geospatial(resolution = 60)

CE.sf <- df60 %>%   
  dplyr::filter(LEVL_CODE == 2 & CNTR_CODE %in% c("AT","CZ","DE","HU","PL","SK")) %>% 
  dplyr::select(NUTS_ID) 

plot(CE.sf)

CE.sf %>% 
  ggplot() +
  geom_sf(color = "black", size = 0.4)

CE = sf::as_Spatial(CE.sf)

leaflet() %>% 
  addProviderTiles("CartoDB.Positron") %>% 
  addPolygons(data= CE, color = "green")
Run Code Online (Sandbox Code Playgroud)

我需要从传单中的第 15 行重现情节,我在这里找到了一些想法:https : //gis.stackexchange.com/questions/239118/r-convert-sf-object-back-to-spatialpolygonsdataframe

但是,使用这种方法不起作用。

maps leaflet r-leaflet r-sf

2
推荐指数
1
解决办法
2068
查看次数

如何在ggplot中始终拥有固定的小数位数 - geom_text

我需要固定的小数位数(在这种情况下为两个),但我无法使其工作,我知道使用roundaccuracy功能,但它似乎对我不起作用

代码:

library(ggplot2)

ggplot(mtcars, aes(factor(cyl))) + 
  geom_bar(color = "steelblue", fill = "#00AFBB", na.rm = T) +
  scale_fill_discrete(drop=FALSE) +
  scale_x_discrete(drop=FALSE) +
  geom_text(aes(label=scales::percent(round(..count../sum(..count..),4))),
            stat='count',vjust = -0.5, size = 4)
Run Code Online (Sandbox Code Playgroud)

r ggplot2 geom-text

1
推荐指数
1
解决办法
646
查看次数

R:绘制 Moran 我在 ggplot 中绘制

直升机我想问一下如何CLASIC [R转换plotggplot,所以它看起来更好,在我的情况,我想绘制MORAN我情节ggplot。

例子:

library(spdep)

data(afcon, package="spData")
moran.plot(afcon$totcon, nb2listw(paper.nb))
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

1
推荐指数
1
解决办法
395
查看次数

计算区域 [R] 的多边形中有多少个点

我想问当我们有国家及其地区的点和多边形的经度和纬度变量时,如何计算某个地区的点数。

我在下面提供了示例:我想计算哪些区域中有多少个点(当没有点时包括零),然后将此变量添加到data2@data对象,以便可以使用计数度量来填充每个区域的多边形。

library(leaflet)
library(tidyverse)
set.seed(101)

URL2 <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsp/gadm36_FRA_2_sp.rds"
data2 <- readRDS(url(URL2))


URL3 <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsp/gadm36_ESP_2_sp.rds"
data3 <- readRDS(url(URL3))

URL4 <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsp/gadm36_PRT_2_sp.rds"
data4 <- readRDS(url(URL4))

URL5 <- "https://biogeo.ucdavis.edu/data/gadm3.6/Rsp/gadm36_GBR_2_sp.rds"
data5 <- readRDS(url(URL5))

random_long_lat <- 
  data.frame(
    long = sample(runif(300, min = -2.5, max = 15.99), replace = F),
    lat = sample(runif(300, min = 42.69, max = 59.75), replace = F)
  )

all <- rbind(data2, data3, data4, data5)

leaflet() %>% 
  addProviderTiles("CartoDB.Positron") %>% 
  addPolygons(data=all, stroke = TRUE, color = "black", weight="", smoothFactor …
Run Code Online (Sandbox Code Playgroud)

r coordinates leaflet dplyr

1
推荐指数
1
解决办法
2936
查看次数

从 2 个列表创建字典

我想根据我拥有的三个列表创建一个字典:

Hier = ['A', 'C']
values = [10, 20]
All = ['A', 'B', 'C', 'D']
Run Code Online (Sandbox Code Playgroud)

结果应如下所示:

{"A", 10, "B": "", "C": 20, "D":""}
Run Code Online (Sandbox Code Playgroud)

python dictionary

1
推荐指数
1
解决办法
38
查看次数