【发布时间】:2018-06-03 18:23:11
【问题描述】:
我想使用具有不同深度乘数(或分辨率乘数)值的移动网络。这两行代码给了我以下错误。知道这里出了什么问题吗?
from keras.applications.mobilenet import MobileNet
basic_model = MobileNet(alpha=0.25, depth_multiplier=0.25, weights=None)
错误:
Traceback(最近一次通话最后一次):
文件“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 行,在 MobileNet 中 x = _depthwise_conv_block(x, 64, alpha, depth_multiplier, block_id=1)
文件“C:\Users\Pedro\Anaconda3\lib\site-packages\keras\applications\mobilenet.py”,第 654 行,在 _depthwise_conv_block name='conv_dw_%d' % block_id)(inputs)
文件“C:\Users\Pedro\Anaconda3\lib\site-packages\keras\engine\topology.py”,第 576 行,在 call self.build(input_shapes[0])
文件“C:\Users\Pedro\Anaconda3\lib\site-packages\keras\applications\mobilenet.py”,第 228 行,在 build constraint=self.depthwise_constraint)
文件“C:\Users\Pedro\Anaconda3\lib\site-packages\keras\legacy\interfaces.py”,第 87 行,在包装器中返回 func(*args, **kwargs)
文件“C:\Users\Pedro\Anaconda3\lib\site-packages\keras\engine\topology.py”,第 397 行,add_weight weight = K.variable(initializer(shape),
文件“C:\Users\Pedro\Anaconda3\lib\site-packages\keras\initializers.py”,第 212 行,在 call dtype=dtype, seed=self.seed)
文件“C:\Users\Pedro\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py”,第 3627 行,random_uniform dtype=dtype,seed=seed)
文件“C:\Users\Pedro\Anaconda3\lib\site-packages\tensorflow\python\ops\random_ops.py”,第 240 行,random_uniform 形状,dtype,seed=seed1,seed2=seed2)
文件“C:\Users\Pedro\Anaconda3\lib\site-packages\tensorflow\python\ops\gen_random_ops.py”,第 247 行,在 _random_uniform seed=seed, seed2=seed2, name=name)
文件 "C:\Users\Pedro\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", 第 589 行,在 apply_op 中 param_name=input_name)
文件 "C:\Users\Pedro\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", 第 60 行,在 _SatisfiesTypeConstraint ", ".join(dtypes.as_dtype(x).name for x in allowed_list)))
TypeError: 传递给参数“shape”的值的 DataType 没有 float32 在允许值列表中:int32、int64
来自mobilent paper:“降低神经网络计算成本的第二个超参数是分辨率乘数 ρ。我们将其应用于输入图像,随后每一层的内部表示都减少相同的乘数。在实践中,我们通过设置输入分辨率隐式设置 ρ。我们现在可以将网络核心层的计算成本表示为具有宽度乘数 α 和分辨率乘数 ρ 的深度可分离卷积: DK · DK · αM · ρDF · ρDF + αM · αN · ρDF · ρDF (7) 其中 ρ ∈ (0, 1] 通常是隐式设置的,因此网络的输入分辨率为 224、192、160 或 128。ρ = 1 是基线 MobileNet,ρ
Keras 声称 depth_multiplier 与 here 和 here 中的分辨率乘数相同:“depth_multiplier:深度卷积的深度乘数(也称为分辨率乘数)”
【问题讨论】:
标签: machine-learning neural-network keras deep-learning conv-neural-network