随笔 - 383  文章 - 0  评论 - 0  阅读 - 35557 

 对于训练深度学习,设计神经网络结构是其中技术含高最高的任务,优秀的网络架构往往依赖建构模型的经验,专业领域知识,以及大量的算力试错。实际应用中往往基于类似功能的神经网络微调生成新的网络结构。

 Auto-Keras是一个离线使用的开源库,用于构建神经网络结构和搜索超参数,支持RNN,CNN神经网络,它使用了高效神经网络搜索ENAS,利用迁移学习的原理将在前面任务中学到的权值应用于后期的模型中,效率相对较高。除了支持keras,它还提供TensorFlow他PyTorch的版本。

1. 安装

 由于需要把输出的神经网络结构保存成图片,使用了pydot和graphviz图像工具支持,auto-keras支持torch等多种工具支持,因此,安装时会下载大量依赖软件。使用以下方法安装auto-keras:

$ apt install graphviz 
$ pip3 install pydot
$ pip3 install autokeras

 使用以下方法下载源码:

$ git clone https://github.com/jhfjhfj1/autokeras

2. 举例

 本例中使用了mnist数据集,它是一个入门级的图像识别数据集,用于训练手写数字识别模型,例程自动下载训练数据,然后创建了图片分类器,训练时间设置为10分钟,模型在测试集上的正确率为99.21%。建议使用带GPU的机器训练模型,它比使用CPU训练速度快几十倍。

from keras.datasets import mnist
from autokeras import ImageClassifier
from autokeras.constant import Constant
import autokeras
from keras.utils import plot_model
    
if __name__ == '__main__':
    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    x_train = x_train.reshape(x_train.shape + (1,))
    x_test = x_test.reshape(x_test.shape + (1,))
    clf = ImageClassifier(verbose=True, augment=False)
    clf.fit(x_train, y_train, time_limit=10 * 60)
    clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
    y = clf.evaluate(x_test, y_test)
    print(y * 100)
    clf.export_keras_model('model.h5')
    plot_model(clf, to_file='model.png')
# 返回值: 99.21
# 谢彦的技术博客

 上述程序在我的机器上运行后训练出了17层网络,其中包括dropout层,池化层,卷积层,全连接层等,程序以图片方式将描述信息保存在model.png中,下面截取了图片中的部分层作为示例,如下图所示:

 

posted on   xieyan0811  阅读(47)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示