标签: training-data

使用 >450K 实例训练 Dlib 对象检测器

dlib 是否能够使用大规模数据集来训练目标检测器。我有超过 450K 的面部图像来训练面部检测器。是否可以使用 Dlib 或者我需要转向另一个替代方案?

object-detection training-data dlib

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

Scikit 使用 CaliberatedClassifierCV 校准分类器的正确方法

Scikit 有CalibrateClassifierCV,它允许我们在特定的 X、y 对上校准我们的模型。它还明确指出data for fitting the classifier and for calibrating it must be disjoint.

如果它们必须是不相交的,那么用以下方法训练分类器是否合法?

model = CalibratedClassifierCV(my_classifier)
model.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)

我担心使用相同的训练集会违反规则disjoint data。另一种选择可能是有一个验证集

my_classifier.fit(X_train, y_train)
model = CalibratedClassifierCV(my_classifier, cv='prefit')
model.fit(X_valid, y_valid)
Run Code Online (Sandbox Code Playgroud)

其缺点是留下的训练数据较少。另外,如果CalibrateClassifierCV应该只适合适合不同训练集的模型,为什么它的默认选项是cv=3,它也适合基本估计器?交叉验证是否自行处理不相交规则?

问题:CalibrateClassifierCV 的正确使用方法是什么?

python classification calibration training-data scikit-learn

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

如何在caret包中的指定网格中随机搜索?

我想知道是否可以在预定义的网格中使用随机搜索。例如,我的网格有alphaand lambdaforglmnet方法。alpha介于 0 和 1 之间,lambda介于 -10 到 10 之间。我想使用随机搜索 5 次来随机尝试此范围内的点。我为网格搜索编写了以下代码,它工作正常,但我无法修改它以进行有限的随机搜索。

rand_ctrl <- trainControl(method = "repeatedcv", repeats = 5,
                          search = "random")
grid <- expand.grid(alpha=seq(0,1,0.1),lambda=seq(-10,10,1)) # I think this should be modified
rand_search <- train(Response ~ ., data = train_dat,
                     method = "glmnet",
                     ## Create 20 random parameter values
                     metric = "RMSE",
                     tuneLength = 5,
                     preProc = c("scale"),
                     tuneGrid = grid,
                     trControl = rand_ctrl)
Run Code Online (Sandbox Code Playgroud)

regression r training-data hyperparameters r-caret

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

ValueError:不支持多类格式

当我尝试使用 metrics.roc_auc_score 时,我得到ValueError: multiclass format is not supported.

import lightgbm as lgb
from sklearn import metrics
def train_model(train, valid):

    dtrain = lgb.Dataset(train, label=y_train)
    dvalid = lgb.Dataset(valid, label=y_valid)

    param = {'num_leaves': 64, 'objective': 'binary', 
             'metric': 'auc', 'seed': 7}
    print("Training model!")
    bst = lgb.train(param, dtrain, num_boost_round=1000, valid_sets=[dvalid], 
                    early_stopping_rounds=10, verbose_eval=False)

    valid_pred = bst.predict(valid)
    print('Valid_pred: ')
    print(valid_pred)
    print('y_valid:')
    print(y_valid)
    valid_score = metrics.roc_auc_score(y_valid, valid_pred)
    print(f"Validation AUC score: {valid_score:.4f}")
    return bst

bst = train_model(X_train_final, X_valid_final)
Run Code Online (Sandbox Code Playgroud)

valid_pred 和 y_valid 是:

Training model!
Valid_pred: 
[1. 1. …
Run Code Online (Sandbox Code Playgroud)

python machine-learning training-data pandas scikit-learn

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

批量训练会导致更多的过拟合

我正在训练一个序列到序列(seq2seq)模型,并且我有不同的值来训练input_sequence_length.

对于值1015,我得到了可以接受的结果,但是当我尝试使用 进行训练时20,我遇到了内存错误,因此我将训练切换为批量训练,但模型过度拟合并且验证损失爆炸,即使使用累积的梯度,我也得到了相同的行为,所以我正在寻找提示并导致更准确的更新方法。


这是我的训练函数(仅包含批处理部分):

    if batch_size is not None:
        k=len(list(np.arange(0,(X_train_tensor_1.size()[0]//batch_size-1), batch_size )))
        for epoch in range(num_epochs):
            optimizer.zero_grad()
            epoch_loss=0
            for i in list(np.arange(0,(X_train_tensor_1.size()[0]//batch_size-1), batch_size )): # by using equidistant batch till the last one it becomes much faster than using the X.size()[0] directly
                sequence = X_train_tensor[i:i+batch_size,:,:].reshape(-1, sequence_length, input_size).to(device)
                labels = y_train_tensor[i:i+batch_size,:,:].reshape(-1, sequence_length, output_size).to(device)
                # Forward pass
                outputs = model(sequence)
                loss = criterion(outputs, labels)
                epoch_loss+=loss.item()
                # Backward and optimize
                loss.backward() …
Run Code Online (Sandbox Code Playgroud)

python machine-learning training-data neural-network pytorch

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

Keras:验证准确度保持不变,但验证损失减少

我知道问题不可能出在数据集上,因为我见过其他项目使用相同的数据集。这是我的数据预处理代码:

import pandas as pd
dataset = pd.read_csv('political_tweets.csv')
dataset.head()
dataset = pd.read_csv('political_tweets.csv')["tweet"].values
y_train = pd.read_csv('political_tweets.csv')["dem_or_rep"].values

from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(dataset, y_train, test_size=0.1)

max_words = 10000
print(max_words)
max_len = 25

tokenizer = Tokenizer(num_words = max_words, filters='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~\t\n1234567890', lower=False,oov_token="<OOV>")

tokenizer.fit_on_texts(x_train)
x_train = tokenizer.texts_to_sequences(x_train)
x_train = pad_sequences(x_train, max_len, padding='post', truncating='post')

tokenizer.fit_on_texts(x_test)
x_test = tokenizer.texts_to_sequences(x_test)
x_test = pad_sequences(x_test, max_len, padding='post', truncating='post')
Run Code Online (Sandbox Code Playgroud)

还有我的模型:

model = Sequential([
    Embedding(max_words+1,64,input_length=max_len),
    Bidirectional(GRU(64, return_sequences = True), merge_mode='concat'),
    GlobalMaxPooling1D(),
    Dense(64,kernel_regularizer=regularizers.l2(0.02)),
    Dropout(0.5),
    Dense(1, activation='sigmoid'),

])
model.summary()

model.compile(loss='binary_crossentropy', optimizer=RMSprop(learning_rate=0.0001), …
Run Code Online (Sandbox Code Playgroud)

machine-learning loss training-data keras tensorflow

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

ModuleNotFoundError:没有名为“模型”的模块

我正在使用 YOLOv5,从其官方 github 存储库克隆。

在训练过程中我遇到了以下错误:

Traceback (most recent call last):
  File "C:\Users\nived\Untitled Folder 1\train.py", line 40, in <module>
    import models
ModuleNotFoundError: No module named 'models'
Run Code Online (Sandbox Code Playgroud)

列车指挥:

!python train.py --img 416 --batch 16 --epochs 150 --data relative/path/to/data.yaml --weights yolov5s.pt --cache*
Run Code Online (Sandbox Code Playgroud)

training-data yolo modulenotfounderror yolov5

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

如何收集和准备用于语音识别的数据?

据我所知,大多数语音识别实现都依赖于二进制文件,这些文件包含他们试图"识别"的语言的声学模型.

那么人们如何编译这些模型呢?

人们可以手动转录大量的演讲,但这需要花费很多时间.即使这样,当给出包含一些语音的音频文件并在文本文件中完整转录它时,单词发音仍然需要以某种方式分开.为了匹配音频的哪些部分对应于文本,仍然需要语音识别.

这是如何聚集的?如果一个人被移交了数千小时的音频文件和他们的完整转录(无论必须手动转录的问题),音频如何以正确的间隔分开,其中一个单词结束而另一个单词开始?不会产生这些声学模型软件已经必须能够语音识别的?

speech-recognition training-data

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

训练错误 - 重点是什么?

回归目标(即做出预测)中培训错误的总体意义是什么?

你可能会说,"好吧,你知道,训练错误可以帮助你确定哪种复杂模型最适合使用."

对此,有人会说,"不,你不能.低训练错误只能意味着你的模型符合你正在训练模型的任何数据,AKA过度拟合"

如果训练误差不是一个很好的预测性能指标,那么计算训练误差的重点是什么?

特别是当我们通过训练错误说到地狱时,只需使用验证错误.

我们什么时候会使用培训错误?

低训练误差可以表明过度拟合..是唯一使用它吗?

regression machine-learning training-data

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

验证和测试的准确性差异很大

我目前正在研究kaggle中的数据集.在训练训练数据模型后,我在验证数据上进行测试,得到的精度约为0.49.

但是,相同的模型在测试数据上给出0.05的准确度.

我使用神经网络作为我的模型

那么,发生这种情况的可能原因是什么?如何开始检查和纠正这些问题?

machine-learning training-data cross-validation deep-learning kaggle

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