小编Mic*_*ael的帖子

如何在C++中以不同概率从数组中随机选取元素

假设我有vector<Point> p一些对象。

我可以简单地选择一个均匀随机的p[rand() % p.size()]

现在假设我有另一个相同大小的 doubles 向量vector <double> chances

我想从 p 中随机采样,每个元素的概率与其值类似chances(总和可能不等于 1.0)。我怎样才能在 C++ 中实现这一点?

c++ random sampling

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

如何在 pytorch 中加载模型而不必记住使用的参数?

我正在 pytorch 中训练一个模型,我为此创建了一个类,如下所示:

from torch import nn

class myNN(nn.Module):
    def __init__(self, dense1=128, dense2=64, dense3=32, ...):
         self.MLP = nn.Sequential(
            nn.Linear(dense1, dense2),
            nn.ReLU(),
            nn.Linear(dense2, dense3),
            nn.ReLU(),
            nn.Linear(dense3, 1)
         )
         ...
Run Code Online (Sandbox Code Playgroud)

为了保存它,我正在使用:

torch.save(model.state_dict(), checkpoint_model_path)
Run Code Online (Sandbox Code Playgroud)

并加载它我正在使用:

model = myNN()   # or with specified parameters
model.load_state_dict(torch.load(model_file))
Run Code Online (Sandbox Code Playgroud)

但是,为了使此方法起作用,我必须在 myNN() 的构造函数中使用正确的值。这意味着我需要以某种方式记住或存储我在每种情况下使用的参数(层大小),以便正确加载不同的模型。

有没有一种灵活的方法可以在 pytorch 中保存/加载模型,我还可以读取层的大小?

例如,通过直接加载 myNN() 对象或以某种方式从保存的 pickle 文件中读取层大小?

我犹豫是否要尝试在 PyTorch 中保存训练模型的最佳方式中的第二种方法?由于那里提到的警告。有更好的方法来实现我想要的吗?

python pytorch

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

标签 统计

c++ ×1

python ×1

pytorch ×1

random ×1

sampling ×1