keras, 构建GRU传值 Units时,报错,TypeError: object of type ‘numpy.int32‘ has no len()

keras,构建GRU模型时,在需要进行随机搜索对units进行传值时,回出现TypeError: object of type 'numpy.int32' has no len()错误。

举例说明:

p = {'neurons': np.random.choice([10,20])}

model = Sequential()

model.add(GRU(units=params['gru1_neurons'], input_shape=(12, 12), return_sequences=False,dropout = 0., recurrent_dropout = 0.)

这个时候运行代码时,会报错TypeError: object of type 'numpy.int32' has no len()

查看API得知:units: Positive integer, dimensionality of the output space

而type(p['gru1_neurons']) 为:numpy.int32.

int 和 numpy.int32 具体有什么不同,请查阅[1]

那么答案就有了,只需要将numpy.int32 转换为int类型就可以了。

[2]中给出了具体做法。那么最终修改为:

model.add(GRU(units=params['gru1_neurons'].item(), input_shape=(12, 12), return_sequences=False,dropout = 0., recurrent_dropout = 0.)

[1]https://stackoverrun.com/cn/q/10516538

[2]https://stackoverflow.com/questions/9452775/converting-numpy-dtypes-to-native-python-types

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值