python - 在神经网络中实现用户输入
问题描述
除了我原来的问题,我还有一些理论问题。
我对 Keras 很陌生,并且有一些逻辑问题。第一个问题是关于火车、测试等。我来自使用 Sci-kit 学习,通常使用 test_train_split 库来执行此操作(我假设我可以在这里做同样的事情?)
我的下一个问题是特征和标签的转换。据我目前的理解,我们无法将字符串输入神经网络,因此必须进行某种规范化。
我学习了分类变量的标记化或虚拟变量,应该对数值进行标准化。我的问题是:特征向量中有 5 列(2 个分类和 3 个数字)。我可以为 2 个分类创建虚拟变量,然后对整个特征向量进行归一化吗?
在此之后,我的问题将在下面的代码中关于 input_shape(x, y)。下面的示例代码来自图像识别。假设我想使用自己的数据集,我是否必须事先知道 input_shape 并以这种方式定义它?或者这是模型可以自己学习的东西?
我的最后一个问题是:假设特征向量由变量 a、b、c 和 d 组成。如何让用户输入他们的 a、b、c 和 d 值并让模型给出输出?在示例中,模型从 CSV 加载到数据框中,然后我将该数据用于测试和训练特征和标签。在这种情况下,我是否需要将用户变量存储到数据框中以便模型预测输出?
我所指的代码是用于图像的,但我的用例不是图像而是整数。代码:
from keras.datasets import mnist
from keras import models
from keras import layers
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
model = model.Sequential()
model.add(layers.Dense(16, activation = 'relu', input_shape = (10000,)))
model.add(layers.Dense(16, activation = 'relu'))
model.add(layers.Dense(1, activation = 'sigmoid'))
model.compile(optimizer= 'rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5, batch_size=64)
test_loss, test_acc = model.evaluate(test_images, test_labels)
任何帮助都会很棒,因为我对此很陌生!
解决方案
我来自使用 Sci-kit learn 并且通常使用 test_train_split 库来做到这一点(我假设我可以在这里做同样的事情?)
是的!根本不应该
据我目前的理解,我们无法将字符串输入神经网络,因此必须进行某种规范化。
正确的。神经网络只是对数字的大量数学运算。话虽如此,您可以将字符串表示为数字(Google word2vec 了解更多信息)
[T] 特征向量中有 5 列(2 个分类和 3 个数值)。我可以为 2 个分类创建虚拟变量,然后对整个特征向量进行归一化吗?
我会假设通过分类,你的意思是类?这些类永远不会作为特征进入网络。那么分类就没有任何意义了。如果你只是想做预测,你可以看看model.predict
.
下面的示例代码来自图像识别。假设我想使用自己的数据集,我是否必须事先知道 input_shape 并以这种方式定义它?或者这是模型可以自己学习的东西?
神经网络是一堆矩阵乘法。您需要提供一些尺寸。它不需要对 batch_size 的先验知识(尽管你可以给出它),但其他维度很重要:即输入层中的特征数量。代码中的input_shape = (10000,)
只是 的简写input_shape = (10000,None)
,None
您可以在哪里放置批量大小(数据点数)。在这种10000
情况下,是特征的数量。
如何让用户输入他们的 a、b、c 和 d 值并让模型给出输出?
请注意,关键是您事先不知道输出。
oneToFive=input("Enter 5 numbers separated by commas")
oneToFive=oneToFive.split(",")
oneToFive=[np.float32(c) for c in oneToFive]
model.predict(x=np.array(oneToFive))
我建议你研究一下这背后的理论。只是盲目地跑来跑去可能会很烦人,因为你很难获得好的结果。即使你取得了好的结果,它们也可能往往不如你想象的那么好。一个可以阅读的地方是Ian Goodfellow 关于深度学习的书。
推荐阅读
- c - 打印数组中缺少第一个字符(While 循环)
- c++ - BlockSci 编译中的错误
- javascript - 在节点服务器提供的静态 html 文件上注入脚本标签
- git - 清除案例到 Git swarm 代码库移动
- media - 问“播放新闻”时没有媒体回应
- node.js - 这是否可以在nodejs中验证远程用户和密码存在检查?
- eclipse - Eclipse Photon,跳过欢迎,缺少复选框
- python - Flask 应用程序中的 asyncio event_loop
- reactjs - Gatsby 博客与 Contentful CMS,如何按日期对博客文章进行排序
- reactjs - 反应输出不会立即改变