Warm tip: This article is reproduced from serverfault.com, please click

machine learning-如何将此keras CNN模型转换为pytorch版本

(machine learning - How can I convert this keras cnn model to pytorch version)

发布于 2020-02-11 15:45:05

这是我想转换为pytorch的示例keras代码。我的输入数据集是10000 * 1 * 102(二维标签)。数据集包括10000个样本。每个样本包含一行,其中包含102个要素。我正在考虑使用1dcnn进行回归。

PS:可以根据我的10000 * 1 * 102数据集调整超参数(例如,过滤器,kernel_size,步幅,填充)。

model = Sequential()
model.add(Conv1D(filters=64, kernel_size=3, activation='relu', input_shape=(n_timesteps,n_features)))
model.add(Conv1D(filters=64, kernel_size=3, activation='relu'))
model.add(Dropout(0.5))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(100, activation='relu'))
model.add(Dense(n_outputs, activation='softmax'))
Questioner
Simon Wei
Viewed
0
ychnh 2020-02-12 08:34:39

欢迎使用pytorch。:)我真的很高兴你决定从Keras切换到PyTorch。对我来说,这是重要的一步,它可以更详细地了解NN的工作原理。如果你对代码有任何特定的疑问,或者如果它不起作用,请告诉我。

import torch.nn as nn
a0 = nn.Conv1D(n_timesteps, 64, 3)
a1 = nn.Relu()
b0 = nn.Conv1D(64, 64, 3)
b1 = nn.Relu()
c0 = torch.nn.Dropout(p=0.5)
d0 = nn.MaxPool1d(2)
e0 = nn.Flatten()
e1 = nn.Linear(32*n_timesteps,100)
e2 = nn.Relu()
e3 = nn.Linear(n_outputs)
f0 = nn.Softmax(dim=1)

model = nn.Sequential(a0,a1,b0,b1,c0,d0,e0,e1,e2,e3,f0)