FashionMNNST数据集

该博客介绍了如何利用TensorFlow2.x构建并训练一个包含5层全连接层的神经网络,应用于FashionMNIST数据集。首先进行了数据预处理,然后通过Sequential模型搭建网络结构,使用Adam优化器,以均方误差和交叉熵作为损失函数进行训练。在训练过程中,每100步打印一次损失,并在每个epoch结束后计算测试集的准确率。

FashionMNNST数据集
使用tensorflow2.x,实现FashionMNNST数据集的简单网络结构的搭建(5层全连接层),以及测试。

# -*- coding: utf-8 -*-
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import datasets,layers,optimizers,Sequential,metrics

def preprocess(x,y):#数据预处理
    x = tf.cast(x, dtype=tf.float32)/255.
    y = tf.cast(y, dtype=tf.int32)
    return x,y

#加载数据集
(x, y), (x_test, y_test) = datasets.fashion_mnist.load_data()
print(x.shape, y.shape)#(60000, 28, 28) (60000,) (10000, 28, 28) (10000,)

batchsz = 128
db = tf.data.Dataset.from_tensor_slices((x,y))
db = db.map(preprocess).shuffle(10000).batch(batchsz)  #调用预处理函数,对每一个x,y进行处理,打散数据,截断

db_test = tf.data.Dataset.from_tensor_slices((x_test,y_test))
db_test = db_test.map(preprocess).batch(batchsz)

db_iter = iter(db)
sample = next(db_iter)
print('batch:',sample[0].shape,sample[1].shape)

#Squential是个容器,将创建的list传给Sequential,它就是一个网络层
model = Sequential([
        layers.Dense(256, activation = tf.nn.relu), #[b,784]==>[b,256]  全连接层,线性激活函数
        layers.Dense(128, activation = tf.nn.relu), #[b,256]==>[b,128]
        layers.Dense(64, activation = tf.nn.relu),  #[b,128]==>[b, 64]
        layers.Dense(32, activation = tf.nn.relu),  #[b, 64]==>[b, 32]
        layers.Dense(10)                            #[b, 32]==>[b, 10]
        ])

model.build(input_shape=[None, 28*28])#喂一个输入,构建一个权值
model.summary()#调试,可以将网络结构打印出来


#优化器 : w = w - lr*grad
optimizer = optimizers.Adam(lr = 1e-3)


def main():
    
    for epoch in range(10):
        
        for step,(x,y) in enumerate(db):
            
            #x:[b,28,28] ==> [b,784]
            #y:[b]
            x = tf.reshape(x,[-1,28*28])
            
            #求梯度
            with tf.GradientTape() as tape:

                #[b,784] ==> [b,10]
                logits = model(x)#调用网络层,得到没有归一化的输出值logits
                y_onehot = tf.one_hot(y, depth = 10)  #将y转成one_hot

                loss_mse = tf.reduce_mean(tf.losses.MSE(y_onehot, logits))   #均方差损失函数MSE
                loss_ce = tf.losses.categorical_crossentropy(y_onehot, logits, from_logits=True)   #交叉熵损失函数
                loss_ce = tf.reduce_mean(loss_ce)

            grads = tape.gradient(loss_ce, model.trainable_variables)  #model.trainable_variables返回【w,b】参数列表
            optimizer.apply_gradients(zip(grads, model.trainable_variables))  #原地更新参数
                   
            if step%100 == 0:
                print(epoch,step,'loss:',float(loss_ce),float(loss_mse))

        total_correct, total_num = 0, 0
        #test
        for x,y in enumerate(db_test):
            # x:[b,28,28] ==> [b,784]
            # y:[b]
            x = tf.reshape(x, [-1, 28 * 28])

            # [b,784] ==> [b,10]
            logits = model(x)  # 调用网络层,使用当前状态的【w,b】,得出测试图片的输出值

            #logits ==> prob  将输出值转换成概率(归一化)
            prob = tf.nn.softmax(logits, axis = 1)
            #[b,10] ==> [b]  pred: int64 ==> int32
            pred = tf.argmax(prob, axis=1)  #获取prob的最大得分的索引位置【0-9】
            pred = tf.cast(pred, dtype=tf.int32)

            #pred:[b]
            #y:[b] 存储的是类别的值【0-9】
            correct = tf.equal(pred,y)   #比较pred与y,相等返回True,不等返回False
            correct = tf.reduce_sum(tf.cast(correct, dtype=tf.int32))  #将bool型转成int,求出b张图片中正确的个数

            total_correct += int(correct)  #求出测试数据集中总的正确个数
            total_num += x.shape[0]    #计算测试集的图片个数

        acc = total_correct / total_num   #计算正确率
        print(epoch, 'test acc:', acc)

if __name__ == '__main__':
    main()
潮汐研究作为海洋科学的关键分支,融合了物理海洋学、地理信息系统及水利工程等多领域知识。TMD2.05.zip是一套基于MATLAB环境开发的潮汐专用分析工具集,为科研人员与工程实践者提供系统化的潮汐建模与计算支持。该工具箱通过模块化设计实现了两大核心功能: 在交互界面设计方面,工具箱构建了图形化操作环境,有效降低了非专业用户的操作门槛。通过预设参数输入模块(涵盖地理坐标、时间序列、测站数据等),用户可自主配置模型运行条件。界面集成数据加载、参数调整、可视化呈现及流程控制等标准化组件,将复杂的数值运算过程转化为可交互的操作流程。 在潮汐预测模块中,工具箱整合了谐波分解法与潮流要素解析法等数学模型。这些算法能够解构潮汐观测数据,识别关键影响要素(包括K1、O1、M2等核心分潮),并生成不同时间尺度的潮汐预报。基于这些模型,研究者可精准推算特定海域的潮位变化周期与振幅特征,为海洋工程建设、港湾规划设计及海洋生态研究提供定量依据。 该工具集在实践中的应用方向包括: - **潮汐动力解析**:通过多站点观测数据比对,揭示区域主导潮汐成分的时空分布规律 - **数值模型构建**:基于历史观测序列建立潮汐动力学模型,实现潮汐现象的数字化重构与预测 - **工程影响量化**:在海岸开发项目中评估人工构筑物对自然潮汐节律的扰动效应 - **极端事件模拟**:建立风暴潮与天文潮耦合模型,提升海洋灾害预警的时空精度 工具箱以"TMD"为主程序包,内含完整的函数库与示例脚本。用户部署后可通过MATLAB平台调用相关模块,参照技术文档完成全流程操作。这套工具集将专业计算能力与人性化操作界面有机结合,形成了从数据输入到成果输出的完整研究链条,显著提升了潮汐研究的工程适用性与科研效率。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
内容概要:本文围绕SSH安全连接配置在毕业设计中的实际应用展开,深入解析了SSH协议的核心功能,包括身份验证、数据加密和安全通道建立。文章重点介绍了SSH密钥对生成、高级配置优化(如自定义端口、密钥路径、心跳机制等),并通过Python结合Paramiko库实现自动化SSH连接与远程命令执行的完整案例,应用于智能家居控制系统项目中。代码层面详细剖析了密钥认证、连接参数设置、错误处理机制、命令执行流程及资源管理策略,并提出了安全增强建议,如主机密钥验证和连接池管理。此外,拓展了SSH在远程数据库访问、代码自动部署等场景的应用,展望了量子安全SSH、零信任架构集成、AI辅助安全监测及WebSSH技术的发展趋势。; 适合人群:具备基本Linux和网络基础知识,正在开展涉及远程通信或系统管理类毕业设计的学生,以及希望提升SSH实战能力的初级开发者; 使用场景及目标:①掌握SSH密钥认证与安全配置方法,构建可靠的远程开发环境;②在物联网、嵌入式系统等毕业项目中实现安全远程控制与自动化运维;③理解SSH底层机制并应用于实际工程问题; 阅读建议:学习过程中应结合文中代码实例进行实操演练,重点关注异常处理与安全性配置,在真实环境中逐步替换不安全策略(如AutoAddPolicy),并尝试扩展至更多应用场景。
内容概要:本文详细介绍了一个基于贝叶斯优化算法(BO)优化径向基函数神经网络(RBF)的多变量时间序列预测项目。通过将BO与RBF结合,构建BO-RBF模型,利用贝叶斯优化自动搜索RBF的关键参数(如中心、宽度、隐层节点数等),提升模型预测精度与稳定性。项目涵盖数据预处理、特征选择、RBF网络结构设计、贝叶斯优化集成、损失函数设定及结果可视化等模块,形成一套完整的自动化预测流程。文中还分析了多变量时间序列预测面临的挑战及其解决方案,强调模型在非线性建模、参数优化效率和泛化能力方面的优势,并展示了其在金融、电力、交通等领域的广泛应用前景。; 适合人群:具备一定Python编程与机器学习基础,从事数据分析、智能预测及相关领域研究的研发人员、工程师与高校学生;适合关注时间序列预测、贝叶斯优化或RBF神经网络应用的技术人员; 使用场景及目标:①应用于金融资产预测、电力负荷预测、交通流量监测等多变量时间序列预测任务;②解决传统RBF网络人工调参效率低、易陷入局部最优的问题;③提升复杂非线性系统的建模精度与自动化水平; 阅读建议:建议结合文中提供的代码示例与完整项目实现进行实践操作,重点关注贝叶斯优化与RBF模型的集成方式、超参数搜索空间的设计及目标函数定义,同时可通过可视化模块深入理解模型训练过程与优化轨迹。
基于遗传算法的微电网调度(风、光、蓄电池、微型燃气轮机)(Matlab代码实现)内容概要:本文介绍了基于遗传算法的微电网调度模型,针对包含风能、光伏、蓄电池和微型燃气轮机的多能源系统进行优化调度研究,采用Matlab代码实现。该模型综合考虑可再生能源出力波动性与负荷需求,通过遗传算法求解系统运行成本最小化、能源利用率最大化及碳排放最低等多目标优化问题,涵盖设备运行特性、能量平衡约束与系统稳定性控制等核心内容,旨在提升微电网的经济性与可靠性。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的高校学生、科研人员及从事微电网、智能电网相关工作的工程技术人员;尤其适合开展能源优化调度、可再生能源集成等领域研究的硕士、博士研究生。; 使用场景及目标:①掌握遗传算法在微电网多源协调调度中的建模与实现方法;②学习如何构建含风光储燃的微电网系统架构并进行优化仿真;③为科研项目、毕业论文或实际工程提供可复现的算法框架与代码参考;④拓展至多目标优化算法(如NSGA-II、NSDBO)的应用对比研究。; 阅读建议:建议读者结合文中提供的Matlab代码逐段分析算法流程,理解编码方式、适应度函数设计及约束处理机制,并尝试修改参数或替换优化算法以加深理解;同时推荐配合Simulink仿真模型验证调度策略的有效性,提升理论与实践结合能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值