相关疑难解决方法(0)

为什么 Pytorch 官方使用 mean=[0.485, 0.456, 0.406] 和 std=[0.229, 0.224, 0.225] 来规范化图像?

在这个页面(https://pytorch.org/vision/stable/models.html)中,它说“所有预训练的模型都期望以相同的方式标准化输入图像,即小批量的 3 通道 RGB 图像形状 (3 x H x W),其中 H 和 W 预计至少为 224。图像必须加载到 [0, 1] 的范围内,然后使用mean = [0.485, 0.456, 0.406]std = [0.229, 0.224, 0.225]“进行归一化。

如果不是平时meanstd正常化是[0.5, 0.5, 0.5][0.5, 0.5, 0.5]?为什么要设置这么奇怪的值?

python normalize pytorch

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

为什么矢量归一化可以提高聚类和分类的准确性?

Mahout in Action中描述了归一化可以略微提高准确性.任何人都可以解释原因,谢谢!

nlp classification machine-learning mahout

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

为什么单层感知器在没有归一化的情况下收敛如此之慢,即使边距很大?

这个问题是在我用其他人编写的一段代码(可以在这里找到)确认我的结果(可以在此处找到 Python Notebook )后完全重新编写的。这是我检测的代码,用于处理我的数据并计算迭代数直到收敛:

import numpy as np
from matplotlib import pyplot as plt

class Perceptron(object):
    """Implements a perceptron network"""
    def __init__(self, input_size, lr=0.1, epochs=1000000):
        self.W = np.zeros(input_size+1)
        #self.W = np.random.randn(input_size+1)
        # add one for bias
        self.epochs = epochs
        self.lr = lr

    def predict(self, x):
        z = self.W.T.dot(x)
        return [1 if self.W.T.dot(x) >=0 else 0]

    def fit(self, X, d):
        errors = []
        for epoch in range(self.epochs):
            if (epoch + 1) % 10000 == 0: print('Epoch',epoch + …
Run Code Online (Sandbox Code Playgroud)

python classification machine-learning perceptron

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

sklearn中具有多个输出的神经网络

我正在尝试建立一个神经网络,以预测每个网球运动员在互相比赛时赢得服务点的概率.对于输入,我会使用N每个玩家所玩的最后一场比赛,取得对手的排名差异以及赢得比赛中他点的实际概率.

例如,仅查看每个玩家的2个匹配项,一个输入就是

i=[-61, 25, 0.62, 0.64, 2, -35, 0.7, 0.65]
Run Code Online (Sandbox Code Playgroud)

前4名是第1名球员(排名差异和概率),其他4名是第2名.输出将是

o=[0.65, 0.63]
Run Code Online (Sandbox Code Playgroud)

因此,培训投入将是X=[i1, i2, i3,...]和输出y=[o1, o2, o3,...]

我有几个新手问题:

  1. 是否有必要对整个数据集中的输入(排名和概率)进行标准化?
  2. 当我尝试在python中运行它时,它说

ValueError:标签二值化不支持多输出目标数据

我可以让MLPClassifier使用2个输出吗?

编辑:添加了一些代码

from sklearn.neural_network import MLPClassifier
clf = MLPClassifier(solver='lbfgs', alpha=1e-5,
                   hidden_layer_sizes=(5, 2), random_state=1)
X=[[-61, 25, 0.62, 0.64, 2, -35, 0.7, 0.65], [2,-5,0.58,0.7,-3,-15,0.65,0.52] ]
y=[ [0.63, 0.64], [0.58,0.61] ]
clf.fit(X,y)
Run Code Online (Sandbox Code Playgroud)

该代码返回提到的错误.数据在这里没有标准化,但是现在让我们忽略它.

python neural-network scikit-learn

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

神经网络具有正态分布的数据重要吗?

因此,与数据相关的标准操作之一是对其进行归一化并将其标准化,以使其具有均值0且标准偏差为1的正态分布数据,对吗?但是,如果数据不是正态分布的怎么办?

另外,所需的输出是否也必须正态分布?如果我希望前馈网络在两个类别(-1和1)之间进行分类,那将不可能标准化为均值0和std为1的正态分布吗?

前馈网是非参数的吧?因此,如果确实如此,对数据进行标准化处理是否仍然很重要?为何人们对此予以认同呢?

statistics normal-distribution machine-learning normalization neural-network

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