如何使用存储在mysql中的任意数据特征训练DNN分类模型?

时间:2019-05-17 07:03:55

标签: mysql tensorflow deep-learning

我有一个术语项目,需要使用MySQL中存储的数据来使用Tensorflow或其他方法训练分类模型。

我尝试使用https://github.com/tensorflow/docs/blob/master/site/en/r2/tutorials/keras/feature_columns.ipynb中的示例,花了很多时间将数据处理到csv文件并修改python脚本。虽然我需要做很多实验,但是可能还有更简单的工具可以对我的MySQL数据集进行训练和实验吗?

2 个答案:

答案 0 :(得分:1)

也许SQLFlow可以满足您的需求;我试图用您提供的数据集构建一个SQLFlow脚本,她应该像这样:

SELECT *
FROM Heart_Disease
TRAIN DNNClassifier /* a pre-defined TensorFlow estimator, tf.estimator.DNNClassifier */
WITH n_classes = 3, hidden_units = [10, 20]  /* a parameter of the Estimator class constructor */
COLUMN Age, Sex, CP, FBS ..  /* From the raw data, enter the columns that you think will help predict your heart rate. */
LABEL Target  /* lable column */
INTO Heart_Disease.test_model; /* The trained model is saved to the specified data table */

应用此模型也非常容易:

SELECT *
FROM Heart_Disease.predict
PREDICT Heart_Disease.predict_result.Target
USING Heart_Disease.test_model;

Heart_Disease.predict Target列为空,预测的Target被保存到Heart_Disease.predict_result.Target表中。

仅供参考:https://github.com/sql-machine-learning/sqlflow/blob/develop/doc/demo.md

这是我的第一个答案。希望我能帮助您。

答案 1 :(得分:0)

我想可以做的是,如果不是实时的并且没有更新,则从sql获取数据转储,然后将其用于其余部分, 或者您可以创建一个mysql连接,然后将该连接提供给pandas read_sql函数,以获取数据框。 A way to do that

如果您还不熟悉tensorflow,则应尝试查看应执行工作的tensorflow的estimator API,此外,您可以使用tensorflow的keras包装器,这也简化了构建NN网络的工作。