emedvedev / attention-ocr

A Tensorflow model for text recognition (CNN + seq2seq with visual attention) available as a Python package and compatible with Google Cloud ML Engine.
MIT License
1.08k stars 256 forks source link

TF 2 Implementation error #183

Open Ankan1998 opened 3 years ago

Ankan1998 commented 3 years ago

2021-01-29 15:28:13.823161: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.d ll not found 2021-01-29 15:28:13.831735: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. 2021-01-29 15:28:19.039282: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2021-01-29 15:28:19.058589: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'nvcuda.dll'; dlerror: nvcuda.dll not found

2021-01-29 15:28:19.068296: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) 2021-01-29 15:28:19.079502: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:169] retrieving CUDA diagnostic information for host: DESKTOP-ALGRPUI 2021-01-29 15:28:19.086903: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:176] hostname: DESKTOP-ALGRPUI 2021-01-29 15:28:19.093464: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set 2021-01-29 15:28:19,101 root INFO phase: train 2021-01-29 15:28:19,103 root INFO model_dir: ./checkpoints 2021-01-29 15:28:19,103 root INFO load_model: False 2021-01-29 15:28:19,105 root INFO output_dir: ./results 2021-01-29 15:28:19,105 root INFO steps_per_checkpoint: 100 2021-01-29 15:28:19,107 root INFO batch_size: 65 2021-01-29 15:28:19,107 root INFO learning_rate: 1.000000 2021-01-29 15:28:19,109 root INFO reg_val: 0 2021-01-29 15:28:19,109 root INFO max_gradient_norm: 5.000000 2021-01-29 15:28:19,110 root INFO clip_gradients: True 2021-01-29 15:28:19,111 root INFO max_image_width 160.000000 2021-01-29 15:28:19,111 root INFO max_prediction_length 8.000000 2021-01-29 15:28:19,112 root INFO channels: 3 2021-01-29 15:28:19,112 root INFO target_embedding_size: 10.000000 2021-01-29 15:28:19,112 root INFO attn_num_hidden: 128 2021-01-29 15:28:19,113 root INFO attn_num_layers: 2 2021-01-29 15:28:19,113 root INFO visualize: False C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\keras\legacy_tf_layers\normalization.py:308: UserWarning: tf.layers.batch_n ormalization is deprecated and will be removed in a future version. Please use tf.keras.layers.BatchNormalization instead. In particular, tf.control_dependencies( tf.GraphKeys.UPDATE_OPS) should not be used (consult the tf.keras.layers.BatchNormalization documentation). 'tf.layers.batch_normalization is deprecated and ' C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\keras\engine\base_layer_v1.py:1719: UserWarning: layer.apply is deprecated and will be removed in a future version. Please use layer.__call__ method instead. warnings.warn('layer.apply is deprecated and ' C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\keras\layers\legacy_rnn\rnn_cell_impl.py:702: UserWarning: tf.nn.rnn_cell.B asicLSTMCell is deprecated and will be removed in a future version. This class is equivalent as tf.keras.layers.LSTMCell, and will be replaced by that in Tensorflo w 2.0. warnings.warn("tf.nn.rnn_cell.BasicLSTMCell is deprecated and will be " C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\keras\engine\base_layer_v1.py:1727: UserWarning: layer.add_variable is dep recated and will be removed in a future version. Please use layer.add_weight method instead. warnings.warn('layer.add_variable is deprecated and ' 2021-01-29 15:28:35,726 root INFO Created model with fresh parameters. <tensorflow.python.framework.ops.Graph object at 0x0000018CA3C23748> 2021-01-29 15:28:36.129245: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) Traceback (most recent call last): File "C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 1375, in _do_call return fn(*args) File "C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 1358, in _run_fn self._extend_graph() File "C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 1398, in _extend_graph tf_session.ExtendSession(self._session) tensorflow.python.framework.errors_impl.InvalidArgumentError: No OpKernel was registered to support Op 'MutableDenseHashTableV2' used by {{node MutableDenseHashTable} } with these attrs: [initial_num_buckets=131072, shared_name="", use_node_name_sharing=true, key_dtype=DT_INT64, container="", value_shape=[], value_dtype=DT_STRING, max_load_factor=0.8] Registered devices: [CPU] Registered kernels: device='CPU'; key_dtype in [DT_INT32]; value_dtype in [DT_DOUBLE] device='CPU'; key_dtype in [DT_INT32]; value_dtype in [DT_FLOAT] device='CPU'; key_dtype in [DT_INT32]; value_dtype in [DT_INT32] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_BOOL] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_DOUBLE] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_FLOAT] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_INT32] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_INT64] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_VARIANT] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_BOOL] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_DOUBLE] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_FLOAT] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_INT32] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_INT64] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_RESOURCE]

     [[MutableDenseHashTable]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "main.py", line 286, in main() File "main.py", line 254, in main reg_val=0 File "C:\Users\Ankan\Desktop\AOCR_TF2\aocr\model\model.py", line 301, in init self.sess.run(tf.compat.v1.global_variables_initializer()) File "C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 968, in run run_metadata_ptr) File "C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 1191, in _run feed_dict_tensor, options, run_metadata) File "C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 1369, in _do_run run_metadata) File "C:\Users\Ankan\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 1394, in _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.InvalidArgumentError: No OpKernel was registered to support Op 'MutableDenseHashTableV2' used by node MutableDenseHashTable (d efined at C:\Users\Ankan\Desktop\AOCR_TF2\aocr\model\model.py:185) with these attrs: [initial_num_buckets=131072, shared_name="", use_node_name_sharing=true, key_dty pe=DT_INT64, container="", value_shape=[], value_dtype=DT_STRING, max_load_factor=0.8] Registered devices: [CPU] Registered kernels: device='CPU'; key_dtype in [DT_INT32]; value_dtype in [DT_DOUBLE] device='CPU'; key_dtype in [DT_INT32]; value_dtype in [DT_FLOAT] device='CPU'; key_dtype in [DT_INT32]; value_dtype in [DT_INT32] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_BOOL] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_DOUBLE] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_FLOAT] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_INT32] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_INT64] device='CPU'; key_dtype in [DT_INT64]; value_dtype in [DT_VARIANT] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_BOOL] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_DOUBLE] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_FLOAT] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_INT32] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_INT64] device='CPU'; key_dtype in [DT_STRING]; value_dtype in [DT_RESOURCE]

     [[MutableDenseHashTable]]

I tried using different table instead of "tf.contrib.lookup.MutableHashTable"

But everything is giving error. i used then tf.lookup.experimental.DenseHashTable. But it is giving these error.

Any help is highly appreciable

khu834 commented 3 years ago

Have you tried tf.raw_ops.MutableHashTable? https://www.tensorflow.org/api_docs/python/tf/raw_ops/MutableHashTable

The interface seems like it should do the same as tf.contrib.lookup.MutableHashTable

mjpieters commented 1 year ago

In my minimal TF2 PR (#198) I successfully used tf.lookup.experimental.MutableHashTable. This uses one of tf.raw_ops.AnonymousMutableHashTable , tf.raw_ops.AnonymousMutableHashTableOfTensors , tf.raw_ops.MutableHashTableV2 or tf.raw_ops.MutableHashTableOfTensorsV2 under the hood based on wether or not the table is anonymous and the number of dimensions needed.

For how attention-ocr uses this, that'd be tf.raw_ops.MutableHashTableV2.

emedvedev commented 1 year ago

Merged @mjpieters's PR: https://github.com/emedvedev/attention-ocr/pull/198. Should support TF2 now.