Как я могу конвертировать эту модель Keras CNN в версию Pytorch - PullRequest
0 голосов
/ 11 февраля 2020

Это пример кода keras, который я хочу преобразовать в pytorch. Мой входной набор данных - 10000 * 1 * 102 (два размера для меток). Набор данных включает в себя 10000 образцов. Каждый образец содержит одну строку с 102 признаками. Я думаю использовать 1dcnn для регрессии.

PS: гиперпараметр (например, filters, kernel_size, stepde, padding) можно настроить на основе моего набора данных 10000 * 1 * 102.

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'))

1 Ответ

2 голосов
/ 12 февраля 2020

Добро пожаловать на pytorch. :) Я очень рад, что вы решили перейти с Keras на PyTorch. Для меня это был важный шаг, чтобы понять, как работают NN более подробно. Если у вас есть какие-либо конкретные c вопросы о коде или он не работает, пожалуйста, дайте мне знать.

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)
...