使用强化学习进行神经网络结构搜索的代码以及修改

关于强化学习(RL)中网络结构设计的笔记和思考 SAC网络下的evaluate()和get_action()函数,本质上都是得到动作,然后在函数式中计算其相关的均值,标准差,得到随机数,然后通过这些信息,生成新的动作。区别只是在于,evaluate()用在训练中,而get_action用在训练后。 阅读详情

目录

 代码一(Using TensorFlow):

代码二(Using TensorFlow):

代码三(Using PyTorch):

参考:


本人在网上找了三个相关的代码,但是都有问题,这里记录一下修改哪些地方之后可以跑通。

 代码一(Using TensorFlow):

代码地址: 

https://github.com/wallarm/nascell-automl

 这个代码有详细的说明:

The First Step-by-Step Guide for Implementing Neural Architecture Search with Reinforcement Learning Using TensorFlow

代码一和代码二使用TensorFlow,有很多版本的问题,基本上可以用以下代码解决:

import tensorflow.compat.v1 as tf

还有些小的问题:

需要在环境中的tensorflow文件夹下加一个example文件夹:

链接: https://pan.baidu.com/s/1mjIsDxr2TCh6wop0-99Cyw?pwd=gb6s

提取码: gb6s 

可以在TensorFlow官网搜索相关函数,查看正确用法,比如查看NASCell。

可以发现NASCell(4 * max_layers)的用法在tensorflow-addons,需要安装这个包,并且导入。

import tensorflow_addons as tfa

cnn.py中的这行初始化的代码也进行了修改。

tf.initializers.glorot_normal()

修改后代码:NAS with RL(Using TensorFlow)-优快云博客

代码二(Using TensorFlow):

代码地址:
https://github.com/titu1994/neural-architecture-search?tab=readme-ov-file 

也是有很多版本的问题,解决思路和代码一类似,除了上面的操作,还有:

在train.py中代码开始的地方添加了下面的代码:

tf.compat.v1.disable_eager_execution()

controller.py中下面两行代码有问题:

            _, loss, summary, global_step = self.policy_session.run([self.train_op, self.total_loss, self.summaries_op,
                                                                     self.global_step],
                                                                    feed_dict=feed_dict)

            self.summary_writer.add_summary(self.summaries_op, global_step)

self.summaries_op这个变量好像有问题,无法fetch到,我也没看懂,好像是跟可视化有关(tensorboard),索性直接把这块删了,改成下面这块:

            _, loss, global_step = self.policy_session.run([self.train_op, self.total_loss,
                                                                     self.global_step],
                                                                    feed_dict=feed_dict)

            # self.summary_writer.add_summary(self.summaries_op, global_step)

修改后代码:NAS with RL(Using TensorFlow)-优快云博客

代码三(Using PyTorch):

代码地址:

https://github.com/Longcodedao/NAS-With-RL

修改1:

把controller类下forward中注释掉的

self.total_layer = torch.randint(1, self.max_layer, (1,)).item()

移到初始化__init__下面了。

修改2:

将代码中play_episode函数下的unsqueeze和squeeze的参数由1改为0。

对其整理和解析的博客如下:

NAS with RL(使用强化学习进行神经网络架构搜索,基于pytorch框架)-优快云博客

参考:

超详细No module named ‘tensorflow.examples’报错解决方法,详细有效!_no module named 'tensorflow.examples-优快云博客

【问题解决】pytorch: RuntimeError: DataLoader worker (pid(s) 27292) exited unexpectedly_runtimeerror: dataloader worker (pid(s) 25676, 116-优快云博客

Python-squeeze()、unsqueeze()函数的理解_python squeeze-优快云博客

torch.gather/torch.scatter_size does not match previous size-优快云博客

Tensorflow报错:TypeError: Fetch argument None has invalid type class ‘NoneType’_typeerror: fetch argument none has invalid type <c-优快云博客

TensorFlow报错:tf.placeholder() is not compatible with eager execution.-优快云博客

tensorflow_addons(tfa)安装与使用-优快云博客

AttributeError: module ‘keras.backend‘ has no attribute ‘set_session‘_module 'keras.backend' has no attribute 'set_sessi-优快云博客

白话强化学习(理论+代码) 昨天无意中翻了翻以前的博文,发现关于强化学习部分的理论部分说的不是很清晰,属于那种懂得都懂,不懂的很难懂的那种。所以的话刚好趁期末有点空复习,那么把这个简要补充一下吧。从最基础的地方重新开始讲起吧,那么本文的话也是会将看起来比较复杂的概念进行简化,但是本文当中还是会有的,但是你可以选择性忽略,或者自行加一个补充。。那么本文目标啥呢强化学习的概念强加学习的特征理解马尔科夫决策bellman方程是啥Q-learnDQN。 阅读详情

相关推荐

强化学习Q-Learning Python可视化代码 训练智能体移动到目标点 Pygame

本项目是一个简单的Q-learning算法在pygame环境下的实现,训练一个自主学习的智能体(agent)在一个5x5的网格环境中移动,使得智能体能够以最大概率到达目标位置。 学习规则: - 智能体(蓝色圆点)可以在一个5x5的网格环境中移动,目标是到达右下角的目标位置(绿色圆点)。 - 智能体可以执行"up"、"down"、"left"、"right"四个动作,但是中间的位置(2, 2)是障碍物无法通过。 - 每次执行一个动作后,智能体会根据动作的结果获得相应的奖励或惩罚: - 撞墙:-10的奖励 - 到达目标位置:50的奖励 - 正常状态转移:-1的奖励 - 目标是通过训练得到最优的策略,使得智能体能够以最大概率到达目标位置。 Q-Learning算法: - 在这个项目中,我们使用一个Q值表来估计在每个状态下采取不同动作的回报值。 - 智能体根据当前的Q值表和ε-greedy策略来选择动作,即以一定概率随机探索新的动作,以一定概率选择当前Q值最大的动作。 - 智能体在环境中进行交互,执行动作并观察环境反馈的奖励,然后根据Q-learning更新Q值表。

基础的强化学习(RL)算法及代码详细demo

基础的强化学习算法及代码详细demo

weixin_45696231的博客 1万+

MATLAB三元相图实战:从数据准备到高级可视化技巧全解析

本文深入解析了如何使用MATLAB绘制专业的三元相图(ternary plot)。文章从数据归一化、范围映射等预处理技巧入手,详细介绍了散点图、等高线图、凸包计算等高级可视化方法,并提供了多数据集对比与出版级图表美化的实战指南,帮助科研与工程人员高效呈现复杂的三元数据关系。

spark7igniter的博客 258

强化学习代码实战

本文就介绍了机器学习中强化学习的经典模型DQN网络,代码实战。

Allen_人工智能与大数据 4604

SAP固定资产原值与净值取值逻辑全解析:从数据表到ABAP实战

在企业资源计划(ERP)系统中,固定资产的价值管理是财务会计的核心模块,其关键在于准确核算资产原值与净值。从技术原理上看,这涉及对资产全生命周期业务(如购置、折旧、转移、报废)的财务建模,以及底层数据表(如ANLC、ANEP)的精准关联与计算。掌握这一逻辑的技术价值在于,能够确保财务报表数据的准确性,满足合规性要求,并为管理决策提供可靠依据。在SAP ECC或S/4HANA系统的应用场景中,ABAP开发者与财务顾问常需通过编写报表程序,从复杂的数据结构中提取资产价值信息。本文聚焦于SAP资产会计模块,深入剖

weixin_30984001的博客 393

YOLO26改进 - SPPF模块 | 发论文神器!LSKA注意力改进SPPF,增强多尺度特征提取能力,高效涨点!!!

本文介绍了Large Separable Kernel Attention (LSKA)模块及其在YOLO26中的结合应用。LSKA旨在解决Visual Attention Networks (VAN)使用大内核卷积时的计算效率问题,通过将2D深度卷积层的卷积核分解为级联的水平和垂直1-D卷积核,降低了计算复杂度和内存占用,且使VAN更关注物体形状。我们将集成LSKA的SPPF_LSKA模块引入YOLO26,大量实验表明,改进后的模型在对象识别、检测、分割和稳健性测试上表现出色。

魔改工程师的博客 252

神经网络结构搜索

整理了一些神经网络结构搜索的论文解读资料

RayChiu757374816的博客 4786

使用PyTorch和TextCNN实现英文长文本诗歌文本分类

在这个过程中,我们了解了如何进行文本数据预处理、构建TextCNN模型,并进行训练与评估。首先,我们需要将文本文件加载到内存中,并将每个诗歌作为一个样本。然后,我们需要将每个样本转换为数字表示,这可以通过将词汇表中的每个词语映射到一个唯一的整数来实现。此外,我们还需要将每个样本的长度统一为固定值,以便于模型输入。通过这个示例,我们可以学习如何构建一个简单但有效的文本分类模型,并在具体的应用场景中进行训练和预测。该模型通过使用多个不同尺寸的卷积核来捕捉文本中的不同长度的信息,并通过最大池化操作提取关键特征。

loop_syntax648的博客 254

神经网络结构搜索NAS简述

导读:自动化机器学习(AutoML)变得越来越火,是机器学习下个发展方向之一。其中的神经网络结构搜索(NAS)是其中重要的技术之一。 这是小编的其他文章,希望对大家有所帮助,点击即可阅读 人工智能常用的十大算法 人工智能数学基础(二)十大经典算法(图像处理) 为了方便大家学习交流,我建了一个扣裙:966367816 另外我还整理了整整python人工智能学习笔记、课程视频、面试宝典一并可以免费分享给大家!扫描文末二维码加V免费咨询学习问题领取资料 1、基于强化学习的NAS 这里...

Java_college的博客 4725

Unreal5从入门到精通之如何在VR中使用3DUI

前面我们讲过《Unreal5从入门到精通之UMG的使用》一般制作游戏时,UI都是添加到屏幕视窗上面的,但是在制作VR时,我们往往需要制作一个3D的UI,放置在场景中,然后使用手柄的射线来和UI进行交互。今天我们就来讲解下,如何在VR中创作和交互3DUI首次操作会感觉好复杂,多多练习,当你熟悉了UE蓝图的操作后会发现,这只是一个常规的蓝图操作而已。祝大家在虚幻的学习过程中非常顺利。希望这篇博客对你有所帮助。

TxNet 1985

YOLOv11改进策略【注意力机制篇】| SE、CBAM、ECA、CA、Swin Transformer等注意力机制全面解析与应用

本文详细介绍了五种主流的注意力机制及其在YOLOv11中的应用。通过合理的模块选择和位置部署,注意力机制能够显著提升目标检测性能。

QQ_778132974的博客 875

神经网络的自我修养——神经网络结构搜索NAS简述

自动化机器学习(AutoML)变得越来越火,是机器学习下个发展方向之一。其中的神经网络结构搜索(NAS)是其中重要的技术之一。人工设计网络需要丰富的经验和专业知识,神经网络有众多的超参数,导致其搜索空间巨大。NAS即是在此巨大的搜索空间里自动地找到最优的网络结构,实现深度学习的自动化。本文将介绍几种经典的NAS方法,方便给读者一个对NAS的直观总览。虽然NAS的热度有所降低,但NAS的发展不会停下,AutoML的发展更不会停下,毕竟一个成熟的AI该学会自己成长了 1、基于强化学习的NAS 这里介绍的.

m0_60720377的博客 1061

让 ABAP Screen Variant 安稳上车:SHD0 与 SHD0_MANDT 的 Transport 全攻略

摘要: SAP项目常需优化交易码界面,通过SHD0的Transaction Variant和Screen Variant可实现字段精简、默认值预设及权限控制,避免修改标准代码。但跨系统迁移时易出现变式丢失或版本兼容问题。核心概念包括: Screen Variant:针对单个屏幕的字段属性配置(跨Client); Transaction Variant:串联多屏幕变式(分跨Client和Client-specific); 版本差异:4.70/6.x后需区分SHD0(跨Client)与SHD0_MANDT(Cl

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 226

炼丹术的终结——神经网络结构搜索之一

深度学习在2010年燃起来以后,较大的革新集中出现在网络结构上。例如,在图像领域,出现了AlexNet, VGG, GoogNet, Inception系列,Res-Net,DenseNet和MobileNet等不同的卷积神经网络;在文本处理领域,出现了RNN,GRU,LSTM等不同的循环神经网络结构。再加上在不同的网络结构中的调参(层数,每层的单元数,卷积核的大小,卷积核的stride的大小等等...

雨石 1万+

基于深度学习的番茄成熟度检测系统——YOLOv5、YOLOv8、YOLOv10及UI界面的实现

YOLO是一种快速且准确的目标检测模型,近年来,YOLOv5、YOLOv8和YOLOv10作为YOLO系列的重要版本,分别在速度、精度和效率上进行了优化。下面我们简要介绍这些模型。本文介绍了如何基于YOLOv5、YOLOv8和YOLOv10等深度学习模型,结合PyQt5设计一个番茄成熟度检测系统。通过训练模型、优化算法和设计用户友好的界面,我们能够构建一个高效且准确的番茄成熟度检测系统,广泛应用于农业自动化和智能化管理中。

YOLO 1002

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

DNN结构构建:NAS网络结构搜索和强化学习、迁移学习

前言 谷歌推出的NASNet架构,用于大规模图像分类和识别。NASNet架构特点是由两个AutoML设计的Layer组成——Normal Layer and Reduction Layer,这样的效果是不再需要相关专家用human knowledge来搭建卷积网络架构,直接用RNN把Hyperparameter计算出来,这样就实现了网络结构...

alppkk4545的博客 891

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【神经网络结构搜索综述】NAS的挑战和解决方案

【GiantPandaCV导读】上一篇中,笔者翻译了国外一篇介绍Automl和NAS的博客,点这里回顾。这一篇是笔者对《A Comprehensive Survey of Nerual Architecture Search: Challenges and Solutions》这篇论文进行翻译和解读,这是2020年刚刚发到arxiv上的有关NAS的综述,内容比较多,30页152篇参考文献。对初学者来说,可以当作一个学习的目录,阅读文中提到的论文。文末用思维导图总结了整篇文章脉络,可以用来速览。 【内容速览】

pprp的博客 2089

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020...

作者 | VincentLee来源 | 晓飞的算法工程笔记导读:为了优化进化算法在神经网络结构搜索时候选网络训练过长的问题,参考ENAS和NSGA-III,论文提出连续进化结构搜索方法(...

AI科技大本营 2780

EAS:基于网络转换的神经网络结构搜索 | AAAI 2018

论文提出经济实惠且高效的神经网络结构搜索算法EAS,使用RL agent作为meta-controller,学习通过网络变换进行结构空间探索。从指定的网络开始,通过function-preserving transformation不断重用其权重,EAS能够重用之前学习到的知识进行高效地探索新的结构,仅需要10 GPU days即可   来源:晓飞的算法工程笔记 公众号 论文: Efficient Architecture Search by Network Transformation 论文地址:.

晓飞的算法工程笔记 654

神经网络搜索(NAS)详解

卷积层选项:(输出通道数, 卷积核大小, 步长)# 包含4种不同配置的卷积层参数组合# 是否使用池化层:最大池化层或不使用# 激活函数选项:ReLU、Sigmoid、Tanh三种常用激活函数self.search_space = search_space # 搜索空间实例self.hidden_size = hidden_size # RNN隐藏层大小# 循环神经网络用于生成序列决策# 这里使用LSTM生成网络架构的决策序列input_size=1, # 简化输入:使用1维输入。

2401_87632893的博客 1627

sgp4模型具体算法_炼丹术的终结 —— 进化算法搜索网络结构

本文是参考文献[1]的阅读笔记。又是好久没写总结,一年一年复一年啊。进化算法关于进化算法,也称为遗传算法。是一种解决最优化的搜索算法。具体细节可以参考维基百科那么既然是搜索算法,当然也能够用到网络结构搜索这个问题上来了。搜索空间对于搜索问题,首先我们要关注的就是搜索空间,在论文中使用的搜索空间跟炼丹术的终结——神经网络结构搜索之二是一样的,我们再来简单回顾一下:如下图所示,(左图)大模型是由多个N...

weixin_39635130的博客 1243

神经架构搜索:自动化设计神经网络的方法

神经架构搜索(NAS)是一种自动设计神经网络架构的方法,通过搜索最优的神经网络结构来提高模型性能。传统设计的局限性:传统的神经网络设计依赖于专家经验和大量实验,这一过程不仅繁琐,而且耗时。此外,手动设计的神经网络架构往往受到设计者的经验和知识的限制,很难达到全局最优。自动化需求:随着深度学习技术的不断发展,对神经网络架构的需求不断增加。手动设计已经无法满足快速迭代的需求,因此需要一种自动化的方法来快速找到最优的神经网络架构。计算资源的提升:近年来,计算资源的不断提升为神经架构搜索提供了可能。

jun778895的博客 1271

CARS: 华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020

为了优化进化算法在神经网络结构搜索时候选网络训练过长的问题,参考ENAS和NSGA-III,论文提出连续进化结构搜索方法(continuous evolution architecture search, CARS),最大化利用学习到的知识,如上一轮进化的结构和参数。首先构造用于参数共享的超网,从超网中产生子网,然后使用None-dominated排序策略来选择不同大小的优秀网络,整体耗时仅需要...

晓飞的算法工程笔记 2321
上一篇: 复现NAS with RL时pytorch的相关问题
下一篇: Ansys APDL施加任意形式载荷(线性/非线性,通过命令流/GUI)
ThreeS_tones
博客等级 码龄5年 2050粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值