python - RL 网络的输入形状差异
问题描述
我是 DQN 和深度学习的初学者。我正在做的一项练习具有以下网络定义。
model = Sequential()
# https://keras.io/api/layers/reshaping_layers/flatten/
model.add(Flatten(input_shape=(1,) + obs_space))
model.add(Dense(16))
model.add(Activation('relu'))
model.add(Dense(32))
model.add(Activation('relu'))
model.add(Dense(act_space))
model.add(Activation('linear'))
print(model.summary())
该网络的摘要是:
Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
flatten (Flatten) (None, 4) 0
_________________________________________________________________
dense_5 (Dense) (None, 16) 80
_________________________________________________________________
activation (Activation) (None, 16) 0
_________________________________________________________________
dense_6 (Dense) (None, 32) 544
_________________________________________________________________
activation_1 (Activation) (None, 32) 0
_________________________________________________________________
dense_7 (Dense) (None, 2) 66
_________________________________________________________________
activation_2 (Activation) (None, 2) 0
=================================================================
Total params: 690
Trainable params: 690
Non-trainable params: 0
我正在尝试使用这样的功能 API 创建这个网络..
obs_space = env.observation_space.shape
i = Input(shape=obs_space)
x = Dense(16, activation='relu')(i)
x = Dense(32, activation='relu')(x)
o = Dense(env.action_space.n, activation='linear')(x)
model = Model (i,o)
model.summary()
这给了我这个总结......
Model: "model_4"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_4 (InputLayer) [(None, 4)] 0
_________________________________________________________________
dense_12 (Dense) (None, 16) 80
_________________________________________________________________
dense_13 (Dense) (None, 32) 544
_________________________________________________________________
dense_14 (Dense) (None, 2) 66
=================================================================
Total params: 690
Trainable params: 690
Non-trainable params: 0
但这不起作用......显然输入形状不一样
顺序(无,4)
功能[(无,4)]
我如何使用功能 API 实现顺序模型形状,以及具体做什么
model.add(Flatten(input_shape=(1,) + obs_space))
做?
解决方案
推荐阅读
- python - 你如何跳过python中的一些代码行?
- javascript - 使用插值 API 数据的标记中的 If 语句
- c# - 如何修复错误 System.InvalidOperationException: Unable to resolve service for type 获取服务时?
- tensorflow - 在 Colab 中执行联邦学习文本生成教程时出错
- c++ - Direct3D11 着色器编译标志问题
- css - 如何在语义-ui网格中居中单个列
- javascript - 尝试使用 Firebase 身份验证时出现错误
- python - 对同一列中的行执行 Python 实体解析
- java - 如何在打印区域内添加两个图像?
- ios - iOS 14 UICollectionView - 自定义单元格约束