Keras:将 Seq 模型转换为函数式 API

lkdjf0293

我目前正在尝试扩大我在书中找到的时间序列示例。我一直在尝试将其移至功能 API,但遇到了问题。我在功能模型中遇到的错误是:

回溯(最近一次调用):文件“merge_n.py”,第 57 行,在 lstm = LSTM(4, batch_input_shape=(batch_size, look_back, 1), stateful=True)(inputs) 文件“/Users/pjhampton/Desktop /MTL/lib/python3.5/site-packages/keras/layers/recurrent.py”,第 243 行,调用return super(Recurrent, self)。调用(inputs, **kwargs) 文件“/Users/pjhampton/Desktop/MTL/lib/python3.5/site-packages/keras/engine/topology.py”,第 541 行,调用self.assert_input_compatibility(inputs) 文件"/Users/pjhampton/Desktop/MTL/lib/python3.5/site-packages/keras/engine/topology.py", line 440, in assert_input_compatibility str(K.ndim(x))) ValueError: Input 0 is incompatible层 lstm_1:预期 ndim=3,发现 ndim=4

顺序模型(原始)

########################################################
# main input
########################################################
look_back = 5
trainX, trainY = create_dataset(train, look_back)
testX, testY = create_dataset(test, look_back)

# reshape input to be [samples, time steps, features]
trainX = numpy.reshape(trainX, (trainX.shape[0], trainX.shape[1], 1)) 
testX = numpy.reshape(testX, (testX.shape[0], testX.shape[1], 1))

batch_size = 1

model = Sequential()
model.add(LSTM(4, batch_input_shape=(batch_size, look_back, 1), stateful=True)) 
model.add(Dense(1))
model.compile(loss='mse', optimizer='adam')

for i in range(100):
    model.fit(trainX, trainY, epochs=1, batch_size=batch_size, verbose=2, shuffle=False)
    model.reset_states()

基于函数式 API 的模型(我尝试过的)

inputs = Input(shape=(batch_size, look_back, 1))

lstm = LSTM(4, batch_input_shape=(batch_size, look_back, 1), stateful=True)(inputs)
dense = Dense(1)(lstm)

model = Model(inputs=inputs, outputs=dense)

model.compile(loss='mse', optimizer='adam')
for i in range(100):
    model.fit(trainX, trainY, epochs=1, batch_size=batch_size, verbose=2, shuffle=False)
    model.reset_states()

完整代码:https : //friendpaste.com/3Zg3VKBs3qd7FNXubNONzN

火腿三明治

您已指定 RNN 是有状态的,因此您需要batch_shape在输入中指定

inputs = Input(batch_shape=(batch_size, look_back, 1))

lstm = LSTM(4, stateful=True)(inputs)
dense = Dense(1)(lstm)

model = Model(inputs=inputs, outputs=dense)

model.compile(loss='mse', optimizer='adam')
for i in range(100):
    model.fit(trainX, trainY, epochs=1, batch_size=batch_size, verbose=2, shuffle=False)
    model.reset_states()

似乎顺序模型正是您正在寻找的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

播放Json API:将JsArray转换为JsResult [Seq [Element]]

来自分类Dev

将Seq [A]转换为Map [Int,Seq [A]]

来自分类Dev

将Map [String,Seq [Int]]转换为Seq [Seq [Int]]

来自分类Dev

将Keras-Fuctional-API转换为Keras子类化模型

来自分类Dev

如何将 Seq[Try] 转换为 Try[Seq]

来自分类Dev

将Java列表转换为Scala Seq

来自分类Dev

F# 将 Seq 转换为 ICollection

来自分类Dev

将seq2seq NLP模型转换为ONNX格式是否会对性能产生负面影响?

来自分类Dev

如何在函数内使用Circe将Seq转换为Json-不断出现“找不到隐式值”错误

来自分类Dev

将Seq [Either [String,Int]]转换为(Seq [String],Seq [Int])的有效和/或惯用方式

来自分类Dev

将Seq [Either [String,Int]]转换为(Seq [String],Seq [Int])的有效和/或惯用方式

来自分类Dev

如何将Seq [Reader [E,A]])转换为Reader [E,Seq [A]]

来自分类Dev

Scala将Map [Int,Future [Seq [T]]]转换为Future [Map [Int,Seq [T]]]

来自分类Dev

如何在Scala中轻松将IndexedSeq [Array [Int]]转换为Seq [Seq [Int]]?

来自分类Dev

Scala:如何将 Seq[Array[String]] 转换为 Seq[Double]?

来自分类Dev

播放JSON:将Seq [Reads [JsObject]]转换为Reads [JsObject]

来自分类Dev

Spark:如何将RDD的Seq转换为RDD

来自分类Dev

为什么Scala将Seq转换为List?

来自分类Dev

将[(Int,Seq [Double])] RDD转换为LabeledPoint

来自分类Dev

将Seq或List转换为collection.immutable.Queue

来自分类Dev

将Scala seq <string>转换为Java List <string>

来自分类Dev

如何将Spark数据集转换为Scala Seq

来自分类Dev

如何将案例类的值转换为Seq?

来自分类Dev

将Seq或List转换为collection.immutable.Queue

来自分类Dev

将[(Int,Seq [Double])] RDD转换为LabeledPoint

来自分类Dev

将Scala seq <string>转换为Java List <string>

来自分类Dev

(Scala)如何将List转换为Seq

来自分类Dev

如何将 Scala Seq 转换为 Java 枚举

来自分类Dev

将Keras模型转换为C ++

Related 相关文章

  1. 1

    播放Json API:将JsArray转换为JsResult [Seq [Element]]

  2. 2

    将Seq [A]转换为Map [Int,Seq [A]]

  3. 3

    将Map [String,Seq [Int]]转换为Seq [Seq [Int]]

  4. 4

    将Keras-Fuctional-API转换为Keras子类化模型

  5. 5

    如何将 Seq[Try] 转换为 Try[Seq]

  6. 6

    将Java列表转换为Scala Seq

  7. 7

    F# 将 Seq 转换为 ICollection

  8. 8

    将seq2seq NLP模型转换为ONNX格式是否会对性能产生负面影响?

  9. 9

    如何在函数内使用Circe将Seq转换为Json-不断出现“找不到隐式值”错误

  10. 10

    将Seq [Either [String,Int]]转换为(Seq [String],Seq [Int])的有效和/或惯用方式

  11. 11

    将Seq [Either [String,Int]]转换为(Seq [String],Seq [Int])的有效和/或惯用方式

  12. 12

    如何将Seq [Reader [E,A]])转换为Reader [E,Seq [A]]

  13. 13

    Scala将Map [Int,Future [Seq [T]]]转换为Future [Map [Int,Seq [T]]]

  14. 14

    如何在Scala中轻松将IndexedSeq [Array [Int]]转换为Seq [Seq [Int]]?

  15. 15

    Scala:如何将 Seq[Array[String]] 转换为 Seq[Double]?

  16. 16

    播放JSON:将Seq [Reads [JsObject]]转换为Reads [JsObject]

  17. 17

    Spark:如何将RDD的Seq转换为RDD

  18. 18

    为什么Scala将Seq转换为List?

  19. 19

    将[(Int,Seq [Double])] RDD转换为LabeledPoint

  20. 20

    将Seq或List转换为collection.immutable.Queue

  21. 21

    将Scala seq <string>转换为Java List <string>

  22. 22

    如何将Spark数据集转换为Scala Seq

  23. 23

    如何将案例类的值转换为Seq?

  24. 24

    将Seq或List转换为collection.immutable.Queue

  25. 25

    将[(Int,Seq [Double])] RDD转换为LabeledPoint

  26. 26

    将Scala seq <string>转换为Java List <string>

  27. 27

    (Scala)如何将List转换为Seq

  28. 28

    如何将 Scala Seq 转换为 Java 枚举

  29. 29

    将Keras模型转换为C ++

热门标签

归档