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

文章讲述了作者在网上找到的三个使用TensorFlow和PyTorch实现神经架构搜索(NAS)的代码中遇到的问题,包括版本不兼容、缺失库依赖和代码调整。作者详细记录了解决方案,如更新TensorFlow版本、添加example文件夹、修复tensorboard问题等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 代码一(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-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值