【发布时间】:2022-06-30 00:15:28
【问题描述】:
我想知道我是否成功地将PyTorch中的以下定义翻译成Keras?
在PyTorch 中,定义了以下多层感知器:
from torch import nn
hidden = 128
def mlp(size_in, size_out, act=nn.ReLU):
return nn.Sequential(
nn.Linear(size_in, hidden),
act(),
nn.Linear(hidden, hidden),
act(),
nn.Linear(hidden, hidden),
act(),
nn.Linear(hidden, size_out),
)
我的翻译是
从张量流导入 keras
from keras import layers
hidden = 128
def mlp(size_in, size_out, act=keras.layers.ReLU):
return keras.Sequential(
[
layers.Dense(hidden, activation=None, name="layer1", input_shape=(size_in, 1)),
act(),
layers.Dense(hidden, activation=None, name="layer2", input_shape=(hidden, 1)),
act(),
layers.Dense(hidden, activation=None, name="layer3", input_shape=(hidden, 1)),
act(),
layers.Dense(size_out, activation=None, name="layer4", input_shape=(hidden, 1))
])
我对输入/输出参数特别困惑,因为这似乎是 tensorflow 和 PyTorch 不同的地方。
当一个流行的 kwarg input_shape 被传递时,keras 将创建一个 在当前层之前插入的输入层。这个可以治疗 相当于显式定义一个 InputLayer。
那么,我做对了吗?
非常感谢!
【问题讨论】:
标签: tensorflow keras pytorch