Open LinTANGSS opened 6 years ago
I also encountered the same mistake. How did you solve it?
I solved this problem, /linear_cos/architecture.py is on line 87, Converting"return tf.sqrt(tf.reduce_sum(filtfilt, [0, 1,2], keep_dims=True)+eps)" To "return tf.sqrt(tf.reduce_sum(filtfilt, [0, 1], keep_dims=True)+eps)"
p=filt.get_shape().as_list() dim_s=list(range(len(p)-1)) return tf.sqrt(tf.reduce_sum(filt*filt,dim_s, keep_dims=True)+eps) this will solve the problem
I solved this problem, /linear_cos/architecture.py is on line 87, Converting"return tf.sqrt(tf.reduce_sum(filt_filt, [0, 1,2], keep_dims=True)+eps)" To "return tf.sqrt(tf.reduce_sum(filt_filt, [0, 1], keep_dims=True)+eps)"
Hello, I modified the code according to your answer, but it still shows an error. Can you discuss it on email or WeChat with me? my mailbox is 1563307692@qq.com. Thank you very much.
Traceback (most recent call last): File "/home/tanglin/data/Code/DCNets/dcnet_cifar100/linear_cos/train_resnet.py", line 161, in
train(args.base_lr, args.batch_size)
File "/home/tanglin/data/Code/DCNets/dcnet_cifar100/linear_cos/train_resnet.py", line 49, in train
vgg.build(images, n_class, is_training)
File "/home/tanglin/data/Code/DCNets/dcnet_cifar100/linear_cos/architecture.py", line 168, in build
name='root', bn=True, pad='SAME', norm=True, reg=False, orth=True)
File "/home/tanglin/data/Code/DCNets/dcnet_cifar100/linear_cos/architecture.py", line 118, in _conv_layer
self._add_orthogonal_constraint(filt, n_filt)
File "/home/tanglin/data/Code/DCNets/dcnet_cifar100/linear_cos/architecture.py", line 99, in _add_orthogonal_constraint
wnorm = self._get_filter_norm(filt)
File "/home/tanglin/data/Code/DCNets/dcnet_cifar100/linear_cos/architecture.py", line 87, in _get_filter_norm
return tf.sqrt(tf.reduce_sum(filt*filt, [0, 1, 2], keep_dims=True)+eps)
File "/home/tanglin/anaconda3/envs/tf1.9/lib/python2.7/site-packages/tensorflow/python/ops/math_ops.py", line 1206, in reduce_sum
name=name)
File "/home/tanglin/anaconda3/envs/tf1.9/lib/python2.7/site-packages/tensorflow/python/ops/gen_math_ops.py", line 2804, in _sum
keep_dims=keep_dims, name=name)
File "/home/tanglin/anaconda3/envs/tf1.9/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 763, in apply_op
op_def=op_def)
File "/home/tanglin/anaconda3/envs/tf1.9/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2329, in create_op
set_shapes_for_outputs(ret)
File "/home/tanglin/anaconda3/envs/tf1.9/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1717, in set_shapes_for_outputs
shapes = shape_func(op)
File "/home/tanglin/anaconda3/envs/tf1.9/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1667, in call_with_requiring
return call_cpp_shape_fn(op, require_shape_fn=True)
File "/home/tanglin/anaconda3/envs/tf1.9/lib/python2.7/site-packages/tensorflow/python/framework/common_shapes.py", line 610, in call_cpp_shape_fn
debug_python_shape_fn, require_shape_fn)
File "/home/tanglin/anaconda3/envs/tf1.9/lib/python2.7/site-packages/tensorflow/python/framework/common_shapes.py", line 676, in _call_cpp_shape_fn_impl
raise ValueError(err.message)
ValueError: Invalid reduction dimension 2 for input with 2 dimensions. for 'root/Sum' (op: 'Sum') with input shapes: [27,96], [3].