标签: mlp

使用 BERT 文本分类时,出现 ValueError: Too muchDimensions 'str' 错误

尝试使用 BERT 模型制作文本情感分类器,但得到ValueError : too many dimensions 'str'

这是列车数据值的 DataFrame;所以它们是train_labels

0   notr
1   notr
2   notr
3   negative
4   notr
... ...
854 positive
855 notr
856 notr
857 notr
858 positive
Run Code Online (Sandbox Code Playgroud)

并且有代码产生错误

train_seq = torch.tensor(tokens_train['input_ids'])
train_mask = torch.tensor(tokens_train['attention_mask'])
train_y = torch.tensor(train_labels.tolist())
Run Code Online (Sandbox Code Playgroud)

At train_y = torch.tensor(train_labels.tolist());出现错误: ValueError: too many dimensions 'str'

你能帮我吗

在此输入图像描述

在此输入图像描述

python text-classification tensor mlp bert-language-model

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

使用 Tensorflow 2.0 和没有 Keras 的急切执行

所以这个问题可能源于缺乏对张量流的了解。但是我正在尝试使用 构建一个多层感知器tensorflow 2.0,但没有Keras.

原因是我的机器学习课程要求我们不使用 keras。你为什么会问?我不确定。

我已经tensorflow 2.0用 Keras 轻松实现了我们的模型,现在我想在没有keras.

model = Sequential()
model.add(Dense(64, activation='relu', input_dim=784))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(5, activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=Adam(),
              metrics=['accuracy'])

X_train = X[:7000]
y_train = tf.keras.utils.to_categorical(y[:7000], num_classes=5)
X_dev = X[7000:]
y_dev = tf.keras.utils.to_categorical(y[7000:], num_classes=5)

model.fit(X_train, y_train,
          epochs=100,
          batch_size=128)
score = model.evaluate(X_dev, y_dev, batch_size=128)
print(score)
Run Code Online (Sandbox Code Playgroud)

这是我的问题。每当我在 上查找文档时Tensorflow 2.0,甚至自定义培训的指南都在使用 Keras。

由于占位符和会话在tensorflow 2.0.

我可以制作张量对象。我的印象是我需要使用 Eager Execution 并使用渐变磁带。但是我仍然不确定如何将这些东西放在一起。

现在我的问题是。我应该在哪里寻找更好的理解?哪个方向下降最大?

请告诉我我是否做错了这个堆栈溢出帖子。这是我第一次来这里。

python keras tensorflow mlp eager-execution

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

如何将 Bert 嵌入提供给 LSTM

我正在研究用于文本分类问题的 Bert + MLP 模型。本质上,我试图用基本的 LSTM 模型替换 MLP 模型。

是否可以创建带有嵌入的 LSTM?或者,最好创建一个带有嵌入层的 LSTM?

更具体地说,我很难尝试创建嵌入矩阵,因此我可以使用 Bert 嵌入创建嵌入层。

def get_bert_embeddings(dataset='gap_corrected_train',
                        dataset_path=TRAIN_PATH,
                        bert_path=BERT_UNCASED_LARGE_PATH,
                        bert_layers=BERT_LAYERS):
    """Get BERT embeddings for all files in dataset_path and specified BERT layers and write them to file."""
    df = None
    for file in os.listdir(dataset_path):
        if df is None:
            df = pd.read_csv(dataset_path+'/'+file, sep='\t')
        else:
            next_df = pd.read_csv(dataset_path+'/'+file, sep='\t')
            df = pd.concat([df, next_df], axis=0)
            df.reset_index(inplace=True, drop=True)

    for i, layer in enumerate(bert_layers):
        embeddings_file = INTERIM_PATH + 'emb_bert' + str(layer) + '_' + dataset …
Run Code Online (Sandbox Code Playgroud)

lstm keras keras-layer mlp bert-language-model

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

调整 MLPRegressor 超参数

我一直在尝试调整 MLP 模型的超参数来解决回归问题,但我总是收到收敛警告。

这是我的代码

def mlp_model(X, Y):

estimator=MLPRegressor()


param_grid = {'hidden_layer_sizes': [(50,50,50), (50,100,50), (100,1)],
          'activation': ['relu','tanh','logistic'],
          'alpha': [0.0001, 0.05],
          'learning_rate': ['constant','adaptive'],
          'solver': ['adam']}

gsc = GridSearchCV(
    estimator,
    param_grid,
    cv=5, scoring='neg_mean_squared_error', verbose=0, n_jobs=-1)

grid_result = gsc.fit(X, Y)


best_params = grid_result.best_params_

best_mlp = MLPRegressor(hidden_layer_sizes = best_params["hidden_layer_sizes"], 
                        activation =best_params["activation"],
                        solver=best_params["solver"],
                        max_iter= 5000, n_iter_no_change = 200
              )

scoring = {
           'abs_error': 'neg_mean_absolute_error',
           'squared_error': 'neg_mean_squared_error',
           'r2':'r2'}

scores = cross_validate(best_mlp, X, Y, cv=10, scoring=scoring, return_train_score=True, return_estimator = True)
return scores
Run Code Online (Sandbox Code Playgroud)

我收到的警告是

ConvergenceWarning: Stochastic Optimizer: Maximum iterations …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network scikit-learn mlp

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

如何使用 scikit learn 的 MLP 分类器可视化模型训练历史?

我使用了 pima-indians-diabetes.csv 数据集。我使用 Keras 构建了一个包含架构 12-8-1 的神经网络,并且能够完美地可视化训练历史。接下来,我尝试使用 scikit learn 中的 MLPCLassifier 实现相同的模型。在这种情况下是否可以像我对 Keras 所做的那样实现训练历史曲线?我只需要可视化我的训练历史,即训练准确性、验证准确性、训练损失和验证损失,就像我对 Keras 所做的那样。我使用 Keras 的代码和曲线:

from keras.models import Sequential
from keras.layers import Dense
from sklearn.model_selection import StratifiedKFold
import numpy
numpy.random.seed(42)

# load pima indians dataset
dataset = numpy.loadtxt("/content/gdrive/My Drive/pima-indians-diabetes.csv", delimiter=",")

# split into input (X) and output (Y) variables
X = dataset[:,0:8]
Y = dataset[:,8]

model = Sequential()
model.add(Dense(12, input_dim=8, kernel_initializer= 'uniform' , activation= 'relu' ))
model.add(Dense(8, kernel_initializer= 'uniform' , activation= 'relu' ))
model.add(Dense(1, kernel_initializer= 'uniform' , …
Run Code Online (Sandbox Code Playgroud)

curve neural-network scikit-learn keras mlp

5
推荐指数
0
解决办法
6920
查看次数

ScikitLearn 的 MLPClasssifier 在输出层使用什么样的激活?

我目前正在处理给定类标签 0 和 1 的分类任务。为此,我使用 ScikitLearnMLPClassifier为每个训练示例提供 0 或 1 的输出。但是,我找不到任何文档,说明 MLPClassifier 的输出层到底在做什么(哪个激活函数?编码?)。

由于只有一个类的输出,我假设使用了诸如 One-hot_encoding 之类的东西。这个假设正确吗?有没有任何文档可以解决这个问题MLPClassifier

neural-network scikit-learn mlp

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

LIME 功能解释产生无效密钥错误

我有一个 MLPRegressor,它非常适合我的数据集。这是我的代码的精简版本,删除了一些不必要的内容:

from sklearn.neural_network import MLPRegressor
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, StandardScaler, RobustScaler
from sklearn import preprocessing
import pandas as pd
import numpy as np
from sklearn import tree
from sklearn.tree import export_graphviz
from datetime import datetime

def str_to_num(arr):
    le = preprocessing.LabelEncoder()
    new_arr = le.fit_transform(arr)
    return new_arr

def compare_values(arr1, arr2):
    thediff = 0
    thediffs = []
    for thing1, thing2 in zip(arr1, arr2):
        thediff = abs(thing1 - thing2)
        thediffs.append(thediff)

    return thediffs

def minmaxscale(data):
    scaler = MinMaxScaler()
    df_scaled = …
Run Code Online (Sandbox Code Playgroud)

python python-3.x scikit-learn mlp

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

是否可以使用 tidymodels 框架构建 MLP 模型?

根据文档,tidymodels 中有三种用于拟合 MLP 模型的引擎,但它们(据我所知)都只能定义一个隐藏层。我是否缺少一些纳入 tidymodels 生态系统的引擎,该引擎可以提供多层(隐藏)层前馈网络?以sklearn.neural_network方式。

tidymodels mlp

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