- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
TLDR:如何使用 Keras RNN 预测序列中的下一个值?
我有一个顺序值列表。我想将它们输入 RNN 以预测序列中的下一个值。
[ 0.43589744 0.44230769 0.49358974 ..., 0.71153846 0.70833333 0.69230769]
我正在使用 Keras 来执行此操作,并且可以获得一个损失减少但准确度始终为 1.0 的网络。这是错误的。 y_tests != model.predict(x_tests)
。
Epoch 0
1517/1517 [==============================] - 0s - loss: 0.0726 - acc: 1.0000 - val_loss: 0.0636 - val_acc: 1.0000
Epoch 1
1517/1517 [==============================] - 0s - loss: 0.0720 - acc: 1.0000 - val_loss: 0.0629 - val_acc: 1.0000
...
这是我的网络。
model = Sequential()
model.add(SimpleRNN(1, 100))
model.add(Dense(100, 1, activation = "sigmoid"))
model.compile(loss="mean_squared_error", optimizer = "sgd")
我尝试过 SimpleRNN、GRU 和 LSTM,但没有成功。以下是数据的格式化方式。
# Current value
y_train = [[ 0.60576923] [ 0.64102564] [ 0.66025641] ..., [ 0.71153846] [ 0.70833333] [ 0.69230769]]
# Previous 10 values
x_train_10 = [
[[ 0.65064103] [ 0.66346154] [ 0.66346154] ..., [ 0.72115385] [ 0.72435897] [ 0.71153846]] ...,
[[ 0.66346154] [ 0.66346154] [ 0.67628205] ..., [ 0.72435897] [ 0.71153846] [ 0.70833333]]
]
# Previous value
x_train_1 = [[ 0.58333333] [ 0.60576923] [ 0.64102564] ..., [ 0.72435897] [ 0.71153846] [ 0.70833333]]
# So here are the shapes...
y_train.shape = (1895, 1)
x_train_10.shape = (1895, 10, 1)
x_train_1.shape = (1895, 1)
x_train_10
中的每个元素都是前 10 个值的列表。我将其格式化为遵循 Keras 的文档,即循环层接受形状为 (nb_samples, timesteps, input_dim)
的输入。
我也尝试过使用 Embedding
层,但没有成功。 (这可能是错误的使用方式 - 我只看到它用于分类而不是预测)。
model = Sequential()
model.add(Embedding(1, 30))
model.add(LSTM(30, 100))
...
pad_sequences
也没有用。
x_train_1 = sequence.pad_sequences(x_train_1, maxlen = None, dtype = "float32")
我想让 RNN 处理这个简单的数据/架构,这样我以后就可以用它来解决更复杂的问题。
谢谢:)
最佳答案
我发布了一个similar question on the Keras Github页面并得到了一个很好的答案。
lukedeo 说acc: 1.0000
表示真实输出和预测输出都大于0.5,反之亦然。相反,我应该查看损失或 mse
,以确定模型的准确性。这是因为我的网络是回归而不是分类器/聚类器。
均方根误差是衡量准确性的一个很好的指标。 accuracy_percent = 1 - np.sqrt(mse)
fchollet(Keras 的创建者)详细阐述说“准确性与回归问题根本无关。”
在处理分类问题时,可以通过在 中将
取决于目标(网络输出)。class_mode
设置为 'categorical'
或 'binary'
来提高准确性model.comple(...)
关于python - 使用 Keras 递归神经网络进行预测 - 准确度始终为 1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32771786/
由于我正在为 iPhone 进行开发,所以我刚刚购买了 iPhone 4 来测试我的应用程序,该应用程序需要测量我的位置坐标。我的 iPhone 上没有任何互联网(3GS、GPRS 或其他...),问
我正在尝试构建一个正则表达式,对于“人类导航的浏览器”的User-Agent:计算结果为 true,但对于机器人则为 false。不用说,匹配不会精确,但如果在 90% 的情况下都能正确匹配,那就足够
我将使用 Python 中的 OpenCV 和 pytesseract 的 OCR 从图片中提取文本。我有这样一张图片: 然后我编写了一些代码来从该图片中提取文本,但它没有足够的准确性来正确提取文本。
我正在尝试使用 vars 学习向量自回归模型R 中的包。这个包没有任何方法来衡量返回模型的准确性。 具体来说,我想使用 accuracy 中定义的 MASE来自 forecast 的函数R 中的包,以
我的工作是计划使用UIMA集群运行文档以提取命名实体,而不提取命名实体。据我了解,UIMA打包的NLP组件很少。我已经测试GATE一段时间了,对此相当满意。在普通文本上还可以,但是当我们通过一些代表性
我正在使用 libSVM(带有线性内核)训练和交叉验证(10 倍)数据。 数据由 1800 个 fMRI 强度体素组成,表示为单个数据点。svm-train 的训练集文件中约有 88 个数据点。 训练
我正在运行一个很大的单元测试列表,这些单元测试正在检查各种不同的类获取和设置。我遇到了一些错误,因为我的测试运行太快?!? 举个简单的例子,单元测试从模拟一个带有评论的博客开始; Blog b = n
我正在进行一项实验,其目标是将脑电图时间序列数据分为 3 类。然而,每当我进行训练时,我的损失都是 NaN,准确度是 0.0。 我的数据有 150 步长,有 4 个 channel 。全部归一化在 0
我已经编写了一个检测 IBeacons 的应用程序(swift,IOS)。虽然我可以正确检测到另一部 iPhone 的 RSSI、准确性和接近度,但在检测到我的信标 (Qualcomm) 时,它会被发
我有包含两列的 csv 文件: category, description 文件中有 1030 个类别,只有大约 12,600 行 我需要获得一个文本分类模型,并根据这些数据进行训练。我使用 kera
问题描述 我正在阅读 François Chollet ( publisher webpage , notebooks on github ) 的“Python 中的深度学习”。复制第 6 章中的示例
我对深度学习非常陌生:我正在 Udemy 上学习深度学习类(class)。一旦我执行我的代码,它会说: ValueError:模型未配置为计算准确性。您应该将 metrics=["accuracy"]
我是一名优秀的程序员,十分优秀!