繁体   English   中英

将 tf keras model 转换为 scikit MLP NN

[英]convert tf keras model to scikit MLP NN

我正在尝试用 tensorflow 和 keras 训练 NLTK 分类器 model,有人知道这是否可以用 sklearn 神经工作 MLP 分类器重新创建吗? 对于我使用 ML 的原因,我认为我不需要 tensorflow,但安装/部署更简单、更容易。

这里没有太多关于机器学习智慧的智慧,任何技巧都非常感谢,即使描述了这个深度学习

所以我的 tf keras model 架构如下所示:

training = []

random.shuffle(training)
training = np.array(training)

# create train and test lists. X - patterns, Y - intents
train_x = list(training[:,0])
train_y = list(training[:,1])

# Create model - 3 layers. First layer 128 neurons, second layer 64 neurons and 3rd output layer contains number of neurons
# equal to number of intents to predict output intent with softmax
model = Sequential()
model.add(Dense(128, input_shape=(len(train_x[0]),), activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(len(train_y[0]), activation='softmax'))

# Compile model. Stochastic gradient descent with Nesterov accelerated gradient gives good results for this model
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])

# Fit the model
model.fit(np.array(train_x), np.array(train_y), epochs=200, batch_size=5, verbose=1)

所以sklearn 神经网络,我在下面这个完全正常吗? 有人可以帮我了解 tensorflow model 架构到底是什么,什么是 sklearn 无法复制的。 我有点理解 tensorflow 可能比更简单的 sklearn 更强大。

#Importing MLPClassifier
from sklearn.neural_network import MLPClassifier


model = MLPClassifier(hidden_layer_sizes=(128,64),activation ='relu',solver='sgd',random_state=1)

只需谷歌将 keras model 转换为 pytorch,那里有相当多的教程......它看起来并不容易,但也许值得为你需要的东西付出努力

沿着这条路走下去,只需使用 sklearn MLP 神经网络,我就可以使用 sklearn 获得足够好的结果......无需正确安装 tensorflow。

Also on a cloud linux instance tensorflow requires a LOT more memory and storage than a FREE account can do on pythonanywhere.com but free account seems just fine with sklearn

在尝试使用 sklearn MLP NN 时,无论出于何种原因,只要将架构保留为默认值并使用学习率,就会得到更好的结果。

from sklearn.neural_network import MLPClassifier

model = MLPClassifier(learning_rate_init=0.0001,max_iter=9000,shuffle=True).fit(train_x, train_y)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM