初始化 Keras 顺序神经网络的正确方法?
Correct way to initialize a Keras sequential neural net?
我正在尝试初始化 Keras 神经网络。我的 X 是形状为 (70000, 4) 的矩阵,我希望第一层有 64 个节点
model = Sequential()
model.add(Dense(64, input_shape=(X.shape)))
以上语法不正确。我的 model.add() 什么是正确的?
我想你有 70000 个样本,每个样本有 4 个点。在这种情况下,使用 Dense (64, input_shape=(4,))
它应该可以工作。
虽然您的网络可能足够小,您可以将 batch_size
设置为几千,甚至与输入的大小相同,但网络会以 batch_size
的块对样本进行迭代.
旧答案 我以为 每个 样本是 70000x4...
Dense
层不能将矩阵作为输入。在 Keras 文档中,Dense(n_nodes, input_shape=(n_inputs,))
等同于 Dense(n_nodes, input_dim=n_inputs)
,这似乎是它接受的唯一一种输入。这里 n_inputs
是一个整数。
你基本上有两个选择:要么在使用 X.reshape(-1)
将 X 传递到网络之前展平 X,要么使用 Reshape
作为第一层,如下所示:
model = Sequential()
model.add(Reshape((X.size,), input_shape=(X.shape)))
model.add(Dense(64))
您可以使用 Flatten
而不是 Reshape
,尽管我无法从文档中判断 Flatten
是否可以采用 input_shape
参数。
我正在尝试初始化 Keras 神经网络。我的 X 是形状为 (70000, 4) 的矩阵,我希望第一层有 64 个节点
model = Sequential()
model.add(Dense(64, input_shape=(X.shape)))
以上语法不正确。我的 model.add() 什么是正确的?
我想你有 70000 个样本,每个样本有 4 个点。在这种情况下,使用 Dense (64, input_shape=(4,))
它应该可以工作。
虽然您的网络可能足够小,您可以将 batch_size
设置为几千,甚至与输入的大小相同,但网络会以 batch_size
的块对样本进行迭代.
旧答案 我以为 每个 样本是 70000x4...
Dense
层不能将矩阵作为输入。在 Keras 文档中,Dense(n_nodes, input_shape=(n_inputs,))
等同于 Dense(n_nodes, input_dim=n_inputs)
,这似乎是它接受的唯一一种输入。这里 n_inputs
是一个整数。
你基本上有两个选择:要么在使用 X.reshape(-1)
将 X 传递到网络之前展平 X,要么使用 Reshape
作为第一层,如下所示:
model = Sequential()
model.add(Reshape((X.size,), input_shape=(X.shape)))
model.add(Dense(64))
您可以使用 Flatten
而不是 Reshape
,尽管我无法从文档中判断 Flatten
是否可以采用 input_shape
参数。