首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Keras mobilenet实现

Keras mobilenet实现
EN

Stack Overflow用户
提问于 2018-06-04 02:23:12
回答 2查看 755关注 0票数 0

我想对depth_multiplier(或分辨率倍增器)使用不同值的mobilenet。这两行代码给出了以下错误。你知道这里出了什么问题吗?

代码语言:javascript
复制
from keras.applications.mobilenet import MobileNet
basic_model = MobileNet(alpha=0.25, depth_multiplier=0.25, weights=None)

错误:

回溯(最近一次调用):

文件"C:/Users/Pedro/Desktop/Work/Smile/files/CVPR_2016_SMILES_DATA/test.py",第2行,在basic_model = MobileNet(alpha=0.25,depth_multiplier=0.25,weights=None)中

文件"C:\Users\Pedro\Anaconda3\lib\site-packages\keras\applications\mobilenet.py",行456,in MobileNet x= _depthwise_conv_block(x,64,alpha,depth_multiplier,block_id=1)

文件名654行,输入名称=‘_depthwise_conv_block _dw_%d’%block_id)(输入)

文件"C:\Users\Pedro\Anaconda3\lib\site-packages\keras\engine\topology.py",第576行,位于内部版本号中的call self.build(input_shapes)文件第228行)

文件"C:\Users\Pedro\Anaconda3\lib\site-packages\keras\legacy\interfaces.py",行87,在包装器返回函数(*args,**kwargs)中文件"C:\Users\Pedro\Anaconda3\lib\site-packages\keras\engine\topology.py",行397,在形状权重=K.variable(initializer( "C:\Users\Pedro\Anaconda3\lib\site-packages\keras\initializers.py",),文件add_weight行212,在中调用 dtype=dtype,seed=self.seed)文件"C:\Users\Pedro\Anaconda3\lib\site-packages\tensorflow\python\ops\random_ops.py",行3627,in random_uniform dtype=dtype,seed=seed)文件"C:\Users\Pedro\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py",行240,in random_uniform shape,dtype,seed=seed1,seed2=seed2)文件shape行247,in _random_uniform seed=seed,seed2=seed2,name=name)文件行589,in apply_op param_name=input_name)文件行60,in _SatisfiesTypeConstraint ",".join(dtypes.as_dtype(x).name name=name x in .join)

TypeError:传递给参数‘float32’的值的DataType形状不在允许值列表中: int32,int64

来自mobilent paper:“降低神经网络计算成本的第二个超参数是分辨率乘法器ρ。我们将其应用于输入图像,随后将每个层的内部表示减少相同的乘数。实际上,我们通过设置输入分辨率来隐式设置ρ。现在,我们可以将网络核心层的计算成本表示为具有宽度乘数α和分辨率乘数ρ的深度可分离卷积: DK·DK·αM·ρDF·ρDF +αM·αN·ρDF·ρDF (7)其中ρ∈(0,1]通常是隐式设置的,因此网络的输入分辨率为224、192、160或128。ρ=1是基线MobileNet,ρ<1是减少的计算量。分辨率乘法器具有将计算成本降低ρ^2的效果。

Keras声称depth_multiplier与herehere中的分辨率倍增器是相同的:"depth_multiplier:深度卷积的深度倍增器(也称为分辨率倍增器)“。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-08 14:13:59

这似乎只是一个糟糕的名字,他们是不一样的。你可以阅读更多here

票数 0
EN

Stack Overflow用户

发布于 2018-06-04 02:36:15

答案在回溯调用的底部。

它需要一个整数,例如25 (一个没有小数点的数字),而不是一个浮点数,例如0.25

depth_multiplier:每个输入通道的深度卷积输出通道数。深度卷积输出通道的总数将等于filters_in * depth_multiplier

参考:https://github.com/fchollet/deep-learning-models/blob/master/mobilenet.py

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50669611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档