- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
作为神经网络的新手,我正在尝试用 python 语言构建神经网络。
我发现keras
包(带有后端tensorflow)是用python语言构建神经网络的最简单(?)方法。
因此,我按照网站( http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/ )中的示例代码,使用我的数据构建了如下代码。
# Create MLP in Keras
from keras.models import Sequential
from keras.layers import Dense
import numpy
# fix random seed for reproducibility
numpy.random.seed(10)
# load my data 170515_data
dataset = numpy.loadtxt("170515_data.csv", delimiter="\t")
# split into input (X) and output (Y) variables
X = dataset[:,0:5]
Y = dataset[:,5]
# create model
model = Sequential()
model.add(Dense(5, input_dim=5, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(32, activation='relu'))
model.add(Dense(1, activation='softmax'))
# Compile model
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
# Fit the model
model.fit(X, Y, epochs=150, batch_size=80)
# evaluate the model
scores = model.evaluate(X, Y)
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
我直接遵循示例代码并更改了示例代码以适合我的数据。 但是,我没有得到我想要的结果。它显示我的准确度为 0。
Epoch 150/150
2880/2880 [==============================] - 0s - loss: 801944.8802 - acc: 0.0000e+00
32/2880 [..............................] - ETA: 12s
我的数据中有 5 列输入和 1 个输出(数据数:2880 行),如下所示,
380 17.00017 9.099979 4 744 889.7142
380 17.27766 9.099979 4 744 886.3223
380 17.49084 9.099979 4 744 884.9797
380 17.56913 9.099979 4 744 884.5085
380 17.69351 9.099979 4 744 883.8726
380 17.67508 9.099979 4 744 885.1917
380 17.64061 9.099979 4 744 887.0289
380 17.44456 9.099979 4 744 888.9369
380 17.27089 9.099979 4 744 890.7271
380 16.95173 9.099979 4 744 894.1897
380 16.43643 9.099979 4 744 898.0527
380 16.14516 9.099979 4 744 898.618
380 16.03739 9.099979 4 744 897.4402
380 16.08521 9.099979 4 744 895.0376
380 16.3003 9.099979 4 744 891.528
380 16.69974 9.099979 4 744 886.5107
380 17.14181 9.099979 4 744 882.9069
380 17.43957 9.099979 4 744 881.3522
380 17.61813 9.099979 4 744 880.3629
380 17.85716 9.179981 4 744 880.0096
380 17.91395 9.299984 4 744 881.5642
380 17.74821 9.399986 4 744 884.4379
380 17.39483 9.519989 4 744 889.0076
380 16.86244 9.639992 4 744 894.3074
380 16.18542 9.759995 4 744 898.5709
380 16 9.879997 4 744 898.3824
380 16.12275 9.879997 4 744 895.1318
380 16.47226 9.879997 4 744 890.5858
380 16.87342 9.879997 4 744 886.3694
380 17.22237 9.839996 4 744 883.8726
380 17.408 9.739994 4 744 882.4357
任何人都可以给我建议或答案吗..?
我在小批量中做错了吗?或者我应该设置更多什么?
请引导我走上正确的道路。
提前致谢。
最佳答案
首先,我看到第 1 列和第 4 列包含相同的值,因此您可能会看看是否可以获得更多包含相关信息的数据,否则您可能会丢弃它。
这个URL正在与 Pimas Indian 合作数据,这是一个分类问题,您的数据试图预测 800 范围内的数字,因此可能需要不同的方法,在本例中是回归预测建模问题。尝试以下模板:
# Vanilla Regression Model
import numpy
import pandas
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
# load dataset
dataframe = pandas.read_csv("file.csv", delim_whitespace=True, header=None)
dataset = dataframe.values
# split into input (X) and output (Y) variables
X = dataset[:,1:4] # Discard first column...
Y = dataset[:,5]
# define base model
def baseline_model():
# create model
model = Sequential()
model.add(Dense(4, input_dim=4, init='normal', activation='relu'))
model.add(Dense(1, init='normal'))
# Compile model
model.compile(loss='mean_squared_error', optimizer='adam')
return model
# fix random seed for reproducibility
seed = 7
numpy.random.seed(seed)
# evaluate model with standardized dataset
estimator = KerasRegressor(build_fn=baseline_model, nb_epoch=100, batch_size=5, verbose=0)
kfold = KFold(n_splits=10, random_state=seed)
results = cross_val_score(estimator, X, Y, cv=kfold)
print("Baseline: %.2f (%.2f) MSE" % (results.mean(), results.std()))
关于python - 使用 keras 和 python 3.6 构建神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45005867/
我有兴趣在 tf.keras 中训练一个模型,然后用 keras 加载它。我知道这不是高度建议,但我对使用 tf.keras 来训练模型很感兴趣,因为 tf.keras 更容易构建输入管道 我想利用
我进行了大量搜索,但仍然无法弄清楚如何编写具有多个交互输出的自定义损失函数。 我有一个神经网络定义为: def NeuralNetwork(): inLayer = Input((2,));
我正在阅读一篇名为 Differential Learning Rates 的文章在 Medium 上,想知道这是否可以应用于 Keras。我能够找到在 pytorch 中实现的这项技术。这可以在 K
我正在实现一个神经网络分类器,以打印我正在使用的这个神经网络的损失和准确性: score = model.evaluate(x_test, y_test, verbose=False) model.m
我最近在查看模型摘要时遇到了这个问题。 我想知道,[(None, 16)] 和有什么区别?和 (None, 16) ?为什么输入层有这样的输入形状? 来源:model.summary() can't
我正在尝试使用 Keras 创建自定义损失函数。我想根据输入计算损失函数并预测神经网络的输出。 我尝试在 Keras 中使用 customloss 函数。我认为 y_true 是我们为训练提供的输出,
我有一组样本,每个样本都是一组属性的序列(例如,一个样本可以包含 10 个序列,每个序列具有 5 个属性)。属性的数量总是固定的,但序列的数量(时间戳)可能因样本而异。我想使用这个样本集在 Keras
Keras 在训练集和测试集文件夹中发现了错误数量的类。我有 3 节课,但它一直说有 4 节课。有人可以帮我吗? 这里的代码: cnn = Sequential() cnn.add(Conv2D(32
我想编写一个自定义层,在其中我可以在两次运行之间将变量保存在内存中。例如, class MyLayer(Layer): def __init__(self, out_dim = 51, **kwarg
我添加了一个回调来降低学习速度: keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=100,
在 https://keras.io/layers/recurrent/我看到 LSTM 层有一个 kernel和一个 recurrent_kernel .它们的含义是什么?根据我的理解,我们需要 L
问题与标题相同。 我不想打开 Python,而是使用 MacOS 或 Ubuntu。 最佳答案 Python 库作者将版本号放入 .__version__ 。您可以通过在命令行上运行以下命令来打印它:
Keras 文档并不清楚这实际上是什么。我知道我们可以用它来将输入特征空间压缩成更小的空间。但从神经设计的角度来看,这是如何完成的呢?它是一个自动编码器,RBM吗? 最佳答案 据我所知,嵌入层是一个简
我想实现[http://ydwen.github.io/papers/WenECCV16.pdf]中解释的中心损失]在喀拉斯 我开始创建一个具有 2 个输出的网络,例如: inputs = Input
我正在尝试实现多对一模型,其中输入是大小为 的词向量d .我需要输出一个大小为 的向量d 在 LSTM 结束时。 在此 question ,提到使用(对于多对一模型) model = Sequenti
我有不平衡的训练数据集,这就是我构建自定义加权分类交叉熵损失函数的原因。但问题是我的验证集是平衡的,我想使用常规的分类交叉熵损失。那么我可以在 Keras 中为验证集传递不同的损失函数吗?我的意思是用
DL 中的一项常见任务是将输入样本归一化为零均值和单位方差。可以使用如下代码“手动”执行规范化: mean = np.mean(X, axis = 0) std = np.std(X, axis =
我正在尝试学习 Keras 并使用 LSTM 解决分类问题。我希望能够绘制 准确率和损失,并在训练期间更新图。为此,我正在使用 callback function . 由于某种原因,我在回调中收到的准
在 Keras 内置函数中嵌入使用哪种算法?Word2vec?手套?其他? https://keras.io/layers/embeddings/ 最佳答案 简短的回答是都不是。本质上,GloVe 的
我有一个使用 Keras 完全实现的 LSTM RNN,我想使用梯度剪裁,梯度范数限制为 5(我正在尝试复制一篇研究论文)。在实现神经网络方面,我是一个初学者,我将如何实现? 是否只是(我正在使用 r
我是一名优秀的程序员,十分优秀!