alibaba / EasyRec

A framework for large scale recommendation algorithms.
Apache License 2.0
1.72k stars 312 forks source link

使用ev_params报错: module 'tensorflow.python.ops.variables' has no attribute 'CounterFilterOptions' #385

Closed supercocoa7654 closed 11 months ago

supercocoa7654 commented 1 year ago

本地使用easyrec + deeprec,easyrec配置打开ev_params ev_params { filter_freq: 5 steps_to_live: 1000 } 报错如下,在deeprec代码库里没搜到报错的这个CounterFilterOptions

[2023-06-20 15:43:18,157][INFO] train files[4]: 20230605.tfrecord/part-00000-c750f897-ba81-4869-b637-68fca5e3b40a-c000.tfrecord,20230605.tfrecord/part-00083-c750f897-ba81-4869-b637-68fca5e3b40a-c000.tfrecord,20230605.tfrecord/part-00093-c750f897-ba81-4869-b637-68fca5e3b40a-c000.tfrecord,20230605.tfrecord/part-00194-c750f897-ba81-4869-b637-68fca5e3b40a-c000.tfrecord
[2023-06-20 15:43:23,012][INFO] shared embeddings[num=0]
wide_regularization is deprecated, please use l2_regularization
Traceback (most recent call last):
  File "/home/admin/pai_root/home/pai/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/admin/pai_root/home/pai/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/train_eval.py", line 165, in <module>
    args.check_mode)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/main.py", line 333, in _train_and_evaluate_impl
    estimator_train.train_and_evaluate(estimator, train_spec, eval_spec)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/compat/estimator_train.py", line 84, in train_and_evaluate
    result = executor.run()
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/training.py", line 613, in run
    return self.run_local()
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/training.py", line 714, in run_local
    saving_listeners=saving_listeners)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/model/easy_rec_estimator.py", line 92, in train
    max_steps, saving_listeners)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 370, in train
    loss = self._train_model(input_fn, hooks, saving_listeners)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1174, in _train_model
    return self._train_model_default(input_fn, hooks, saving_listeners)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1204, in _train_model_default
    features, labels, ModeKeys.TRAIN, self.config)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/tensorflow_estimator/python/estimator/estimator.py", line 1162, in _call_model_fn
    model_fn_results = self._model_fn(features=features, **kwargs)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/model/easy_rec_estimator.py", line 603, in _model_fn
    return self._train_model_fn(features, labels, config)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/model/easy_rec_estimator.py", line 131, in _train_model_fn
    is_training=True)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/model/deepfm.py", line 34, in __init__
    self._wide_features, _ = self._input_layer(self._feature_dict, 'wide')
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/layers/input_layer.py", line 96, in __call__
    features, group_name, feature_name_to_output_tensors)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/layers/input_layer.py", line 171, in single_call_input_layer
    feature_name_to_output_tensors=feature_name_to_output_tensors)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/compat/feature_column/feature_column.py", line 306, in input_layer
    feature_name_to_output_tensors=feature_name_to_output_tensors)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/compat/feature_column/feature_column.py", line 233, in _internal_input_layer
    return _get_logits()
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/compat/feature_column/feature_column.py", line 206, in _get_logits
    trainable=trainable)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/tensorflow_core/python/util/deprecation.py", line 324, in new_func
    return func(*args, **kwargs)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/compat/feature_column/feature_column_v2.py", line 3575, in _get_dense_tensor
    weight_collections, trainable)
  File "/home/admin/pai_root/home/pai/lib/python3.6/site-packages/easy_rec/python/compat/feature_column/feature_column_v2.py", line 3495, in _old_get_dense_tensor_internal
    filter_options=variables.CounterFilterOptions(
AttributeError: module 'tensorflow.python.ops.variables' has no attribute 'CounterFilterOptions'

看了下easyrec代码是调到了_get_dense_tensor这个deprecated的方法,是不是应该调上边那个get_dense_tensor方法,那个里边没有CounterFilterOptions image

chengmengli06 commented 11 months ago

fixed, please use the latest code.