首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python TFlearn -损失太高

Python TFlearn -损失太高
EN

Stack Overflow用户
提问于 2017-06-30 04:49:00
回答 1查看 376关注 0票数 2

在修复了输入形状问题之后,我运行了我的程序,问题是程序打印的总损失太高了(例如,如果我将其与快速入门教程中的比较)。

我的目标是通过使用过去的数据(我有超过10M的输入和分数标记)来预测未来条目的拥堵情况,所以我在训练上应该不会有问题。

这是我的代码:

代码语言:javascript
复制
import numpy as np
import tflearn

# Load CSV file, indicate that the first column represents labels
from tflearn.data_utils import load_csv
data, labels = load_csv('nowcastScaled.csv', has_header=True, n_classes=2)

# Preprocessing function
def preprocess(data):
    return np.array(data, dtype=np.float32)

# Preprocess data
data = preprocess(data)

# Build neural network
net = tflearn.input_data(shape=[None, 2])
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 2, activation='linear')
data = np.reshape(data, (-1, 2))
labels = np.reshape(labels, (-1, 2))
net = tflearn.regression(net, optimizer='adam', learning_rate=0.001,
                         loss='categorical_crossentropy')

# Define model
model = tflearn.DNN(net)
# Start training (apply gradient descent algorithm)
model.fit(data, labels, n_epoch=15, batch_size=16, show_metric=True)

# Training
model.save('test_Model')
model.load('test_Model')
score = model.evaluate(data, labels, batch_size=16)

我的excel文件有这样的外观(2列,100,000 )

代码语言:javascript
复制
calculed_at , congestion
1 , 56
2 , 21

结果是这样的(15个时代):

代码语言:javascript
复制
Training samples: 50000
Validation samples: 0
....
--
Training Step: 40625  | total loss: 15.27961 | time: 17.659s
| Adam | epoch: 013 | loss: 15.27961 - acc: 0.7070 -- iter: 50000/50000
--
Training Step: 43750  | total loss: 15.66268 | time: 17.549s
| Adam | epoch: 014 | loss: 15.66268 - acc: 0.7247 -- iter: 50000/50000
--
Training Step: 46875  | total loss: 15.94696 | time: 18.037s
| Adam | epoch: 015 | loss: 15.94696 - acc: 0.7581 -- iter: 50000/50000
--

你知道什么会造成这么大的损失吗?这似乎很奇怪,因为印刷的准确性似乎不算太差。谢谢你的帮助。

编辑:当我采用这些值时,这似乎是一个很好的时刻,因为我刚才尝试的时候,总损失超过了280 (精确度低于0,3,甚至几乎没有超过)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-08 14:58:48

对于时间序列,通过考虑时间窗口的框架来构造输入/输出示例。在每个窗口中,如果样本是{0, 1, ...N},则选择第一个N-1样本作为输入,选择最后一个样本作为输出。然后你可以做回归来做time prediction

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44838782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档