tensorflow - tensorflow 2.0, variable_scope(), TypeError: __call__() got an unexpected keyword argument 'partition_info'
问题描述
我已经使用 将 CNN 模型从 tf1.x 转换为 tf2.0 tf_upgrade_v2
,但是当我使用这个转换后的模型时,我得到了一个错误:
File "/home/hsw/virtual_env/tf2.0/lib/python3.6/site-packages/tensorflow/python/ops/variable_scope.py", line 2492, in default_variable_creator
import_scope=import_scope, distribute_strategy=distribute_strategy)
File "/home/hsw/virtual_env/tf2.0/lib/python3.6/site-packages/tensorflow/python/ops/variables.py", line 216, in __call__
return super(VariableMetaclass, cls).__call__(*args, **kwargs)
File "/home/hsw/virtual_env/tf2.0/lib/python3.6/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 422, in __init__
constraint=constraint)
File "/home/hsw/virtual_env/tf2.0/lib/python3.6/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 545, in _init_from_args
initial_value() if init_from_fn else initial_value,
File "/home/hsw/virtual_env/tf2.0/lib/python3.6/site-packages/tensorflow/python/ops/variable_scope.py", line 886, in <lambda>
shape.as_list(), dtype=dtype, partition_info=partition_info)
TypeError: __call__() got an unexpected keyword argument 'partition_info'
似乎有问题variables.py
,转换后的模型如下:
with tf.compat.v1.variable_scope('backbone', reuse=tf.compat.v1.AUTO_REUSE):
net = tf.compat.v1.layers.separable_conv2d(inputs, 16, 3, 1, 'same',
activation=tf.nn.elu,
depthwise_initializer=tf.keras.initializers.glorot_normal(),
pointwise_initializer=tf.keras.initializers.glorot_normal(),
name='conv1')
net = tf.compat.v1.layers.max_pooling2d(net, 2, 2, padding='same')
net = tf.compat.v1.layers.separable_conv2d(net, 32, 3, 1, 'same',
activation=tf.nn.elu,
depthwise_initializer=tf.keras.initializers.glorot_normal(),
pointwise_initializer=tf.keras.initializers.glorot_normal(),
name='conv2')
应该怎么做才能解决这个问题?
解决方案
这是一个错误,它已经在 github 上提交了。见那里的讨论:https ://github.com/tensorflow/tensorflow/issues/26665#issuecomment-472950222
推荐阅读
- java - 如果我的玩家可以在回合制游戏中以 x 个动作结束,我应该如何计算每个可能的终点?
- eclipse - 发布到 Glassfish 服务器卡在 15% 并且所有其他进度都被阻止
- azure - 带有 KMSI 的 Azure 广告 b2c 自定义策略,自动登录在浏览器关闭后不起作用
- c# - 同时从多个程序连接到 COM 设备
- mysql - 在 SQL 中添加外键时出现语法错误 1064 (42000)
- c++ - 使用复制列表初始化从函数返回,不需要复制/移动构造函数 - C++ 11 标准中在哪里说明?
- godot - 动画错误。使用godot游戏引擎
- python - 如何创建多个菜单选项
- json - Flutter fromJson - 未处理的错误未处理的错误类型'String'不是类型'int'的子类型发生在实例中
- html - 如何在 HTML5 数字输入中不允许超过 2 个小数