TODO:
2、loss值为nan
3、matlab 根据一个曲线 求出此曲线的函数表达式
""" AI数据预测 参考:https://baijiahao.baidu.com/s?id=1659970648237693575&wfr=spider&for=pc 备注: 1、NumPy是Python用于科学计算的基本包 2、TensorFlow是一个开源的机器学习框架,开发人员可以轻松构建和部署机器学习支持的应用程序 TODO: 1、预测后的模型怎么保存(下次直接使用模型 就不用再次训练了) 2、当训练数据过多 过大时 loss值会为nan(未解决) """ import tensorflow as tf import numpy as np from tensorflow import keras class JarAiUtil: def __init__(self): pass if __name__ == '__main__': # 创建一个具有1层的神经网络,该层具有1个神经元,其输入形状为1 model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])]) # 使用优化器和损失函数编译机器学习模型 # 损失函数将猜测的答案与已知的正确答案进行比较,并衡量其结果的好坏。本文中我们使用一个简单的损失函数,即mean_squared_error # 该机器学习模型还需要优化器函数。根据损失函数的运行情况,它将尝试使损失最小化 model.compile(optimizer='sgd', loss='mean_squared_error') # 现在,我们已经编译了模型,我们可以打印模型摘要并查看图。使用以下语句来打印摘要。 print(model.summary()) # 现在让我们将模型拟合到一些训练数据上。由于我们要学习的关系非常简单,因此仅需几个实例就足以训练模型 # epochs等于3000意味着模型将尝试3000次迭代优化它的权重 # 调用model.fit()我们可以看到训练的输出。请注意,随着epochs数的增加,损失不断减少(loss的值) xs = np.array( [1.0, 2.0, 3.5, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0], dtype=float) ys = np.array( [1.0, 3.0, 6.0, 7.0, 9.0, 11.0, 13.0, 15.0, 17.0, 19.0], dtype=float) model.fit(xs, ys, epochs=3000) # 最后,让我们使用模型执行预测。使用以下语句检查输入x = 10.0的输出 print('y = 2 * x - 1 当x=10.0时 预测y值:', model.predict([10.0])) # 输出:y = 2 * x - 1 当x=10.0时 预测y值: [[18.999996]] (可以看到,逼近函数输出的值非常接近19.0)