keras ‘Dense‘ object is not iterable 解决办法

今天在学习keras的时候遇见了这个报错 很懵逼,中文翻译出来就是Dense这个玩意不是个迭代器,迭代器在这里又是个啥???
代码如下

model = Sequential(Dense(units=10,input_dim=784,bias_initializer='one',activation='softmax'))

去查看Sequential的源码,构造函数是这么写的

    def __init__(self, layers=None, name=None):
        super(Sequential, self).__init__(name=name)
        self._build_input_shape = None

        # Add to the model any layers passed to the constructor.
        if layers:
            for layer in layers:
                self.add(layer)

这时候就会发现一个for循环从layers中取出每个layer,这个操作似曾相识,列表里的操作?于是乎我加了一个这个中括号在Dense的外面

model = Sequential([Dense(units=10,input_dim=784,bias_initializer='one',activation='softmax')])

运行成功

当然我们不能这么就解决问题不思考了,我想做个错误的小测试

nums = 5

for num in nums:
    print(num)

会报错

TypeError: ‘int’ object is not iterable

嗷原来是这样,虽然小白还是不太懂迭代器是什么,但是感觉清晰了一点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值