鉴于PyTorch中的代码如下,Keras的等价物是什么?
class Network(nn.Module):
def __init__(self, state_size, action_size):
super(Network, self).__init__()
# Inputs = 5, Outputs = 3, Hidden = 30
self.fc1 = nn.Linear(5, 30)
self.fc2 = nn.Linear(30, 3)
def forward(self, state):
x = F.relu(self.fc1(state))
outputs = self.fc2(x)
return outputs
Run Code Online (Sandbox Code Playgroud)
是这个吗?
model = Sequential()
model.add(Dense(units=30, input_dim=5, activation='relu'))
model.add(Dense(units=30, activation='relu'))
model.add(Dense(units=3, activation='linear'))
Run Code Online (Sandbox Code Playgroud)
还是这个?
model = Sequential()
model.add(Dense(units=30, input_dim=5, activation='linear'))
model.add(Dense(units=30, activation='relu'))
model.add(Dense(units=3, activation='linear'))
Run Code Online (Sandbox Code Playgroud)
或者是吗?
model = Sequential()
model.add(Dense(units=30, input_dim=5, activation='relu'))
model.add(Dense(units=30, activation='linear'))
model.add(Dense(units=3, activation='linear'))
Run Code Online (Sandbox Code Playgroud)
谢谢
根据我的知识,它们都不正确.正确的Keras等效代码将是:
model = Sequential()
model.add(Dense(30, input_shape=(5,), activation='relu'))
model.add(Dense(3))
Run Code Online (Sandbox Code Playgroud)
model.add(Dense(30,input_shape =(5,),activation ='relu'))
模型将采用形状(*,5)的输入数组和形状(*,30)的输出数组.而不是input_shape,你也可以使用input_dim.input_dim=5相当于input_shape=(5,).
model.add(密集(3))
在第一个图层之后,您不再需要指定输入的大小.此外,如果您未指定任何激活内容,则不会应用任何激活(相当于线性激活).
另一种选择是:
model = Sequential()
model.add(Dense(30, input_dim=5))
model.add(Activation('relu'))
model.add(Dense(3))
Run Code Online (Sandbox Code Playgroud)
希望这是有道理的!
| 归档时间: |
|
| 查看次数: |
5177 次 |
| 最近记录: |