神经网络应用于常州五月气温预测的实践

版权申诉
0 下载量 17 浏览量 更新于2024-10-28 收藏 12KB ZIP 举报
资源摘要信息:"本压缩包文件中包含了一个关于气温预测的神经网络模型项目,具体聚焦于预测江苏省常州市在五月份的气温。该模型采用真实气温数据进行训练和验证,并且在描述中提到备注信息详细,这可能意味着模型的构建、训练过程、数据预处理步骤等都有详细的文档记录。 神经网络预测气温的基本原理是通过历史气温数据来训练模型,使其能够捕捉和理解气温变化的模式和规律。模型通过学习大量的输入输出数据对,找到输入(如历史温度、湿度、气压等气象数据)和输出(未来气温)之间的非线性关系。这种关系的复杂性使得传统的线性预测方法可能无法有效捕捉,而神经网络则因其具有强大的非线性逼近能力,成为了气象预测中的一个重要工具。 在模型构建和应用中,可能涉及以下知识点: 1. 数据预处理:包括数据清洗、归一化或标准化、处理缺失值等,以确保数据质量并适应神经网络模型的输入要求。 2. 神经网络架构设计:涉及神经元数量、层数、激活函数的选择,以及是否有必要使用卷积层、递归层等特殊类型的层。 3. 模型训练:包括选择合适的损失函数、优化器,确定训练周期(epochs)、批次大小(batch size),以及设置早停(early stopping)等策略来避免过拟合。 4. 性能评估:通过测试集验证模型预测能力,使用均方误差(MSE)、均方根误差(RMSE)、决定系数(R^2)等指标来评估模型的准确性和泛化能力。 5. 超参数调优:通过交叉验证等方法来优化神经网络的超参数,以期达到更好的预测效果。 6. 结果分析与解释:根据模型输出进行结果的解读,分析模型预测的准确性以及可能的误差来源,并尝试解释模型得出预测结果的原因。 对于具体的气温预测模型而言,还可能会涉及到气象学专业知识,如考虑温度随时间的变化趋势、季节性波动、地理位置的影响、气候变化等因素,这些都需要在模型设计和训练时予以充分考虑。 需要注意的是,尽管神经网络在处理非线性关系方面具有独特优势,但气象预测仍然是一项复杂的科学任务。模型的预测结果并不是绝对的,它们通常会在一定的置信区间内给出预测值,并伴随着一定的不确定性。因此,模型输出通常需要由经验丰富的气象学家进行分析和解读,才能为实际决策提供参考。"

import time import tensorflow.compat.v1 as tf tf.disable_v2_behavior() from tensorflow.examples.tutorials.mnist import input_data import mnist_inference import mnist_train tf.compat.v1.reset_default_graph() EVAL_INTERVAL_SECS = 10 def evaluate(mnist): with tf.Graph().as_default() as g: #定义输入与输出的格式 x = tf.compat.v1.placeholder(tf.float32, [None, mnist_inference.INPUT_NODE], name='x-input') y_ = tf.compat.v1.placeholder(tf.float32, [None, mnist_inference.OUTPUT_NODE], name='y-input') validate_feed = {x: mnist.validation.images, y_: mnist.validation.labels} #直接调用封装好的函数来计算前向传播的结果 y = mnist_inference.inference(x, None) #计算正确率 correcgt_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)) accuracy = tf.reduce_mean(tf.cast(correcgt_prediction, tf.float32)) #通过变量重命名的方式加载模型 variable_averages = tf.train.ExponentialMovingAverage(0.99) variable_to_restore = variable_averages.variables_to_restore() saver = tf.train.Saver(variable_to_restore) #每隔10秒调用一次计算正确率的过程以检测训练过程中正确率的变化 while True: with tf.compat.v1.Session() as sess: ckpt = tf.train.get_checkpoint_state(minist_train.MODEL_SAVE_PATH) if ckpt and ckpt.model_checkpoint_path: #load the model saver.restore(sess, ckpt.model_checkpoint_path) global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1] accuracy_score = sess.run(accuracy, feed_dict=validate_feed) print("After %s training steps, validation accuracy = %g" % (global_step, accuracy_score)) else: print('No checkpoint file found') return time.sleep(EVAL_INTERVAL_SECS) def main(argv=None): mnist = input_data.read_data_sets(r"D:\Anaconda123\Lib\site-packages\tensorboard\mnist", one_hot=True) evaluate(mnist) if __name__ == '__main__': tf.compat.v1.app.run()对代码进行改进

2023-05-26 上传

以下代码有什么错误,怎么修改: import tensorflow.compat.v1 as tf tf.disable_v2_behavior() from PIL import Image import matplotlib.pyplot as plt import input_data import model import numpy as np import xlsxwriter num_threads = 4 def evaluate_one_image(): workbook = xlsxwriter.Workbook('formatting.xlsx') worksheet = workbook.add_worksheet('My Worksheet') with tf.Graph().as_default(): BATCH_SIZE = 1 N_CLASSES = 4 image = tf.cast(image_array, tf.float32) image = tf.image.per_image_standardization(image) image = tf.reshape(image, [1, 208, 208, 3]) logit = model.cnn_inference(image, BATCH_SIZE, N_CLASSES) logit = tf.nn.softmax(logit) x = tf.placeholder(tf.float32, shape=[208, 208, 3]) logs_train_dir = 'log/' saver = tf.train.Saver() with tf.Session() as sess: print("从指定路径中加载模型...") ckpt = tf.train.get_checkpoint_state(logs_train_dir) if ckpt and ckpt.model_checkpoint_path: global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1] saver.restore(sess, ckpt.model_checkpoint_path) print('模型加载成功, 训练的步数为: %s' % global_step) else: print('模型加载失败,checkpoint文件没找到!') prediction = sess.run(logit, feed_dict={x: image_array}) max_index = np.argmax(prediction) workbook.close() def evaluate_images(test_img): coord = tf.train.Coordinator() threads = tf.train.start_queue_runners(coord=coord) for index,img in enumerate(test_img): image = Image.open(img) image = image.resize([208, 208]) image_array = np.array(image) tf.compat.v1.threading.Thread(target=evaluate_one_image, args=(image_array, index)).start() coord.request_stop() coord.join(threads) if __name__ == '__main__': test_dir = 'data/test/' import glob import xlwt test_img = glob.glob(test_dir + '*.jpg') evaluate_images(test_img)

2023-07-08 上传