phaseworm icon indicating copy to clipboard operation
phaseworm copied to clipboard

TensorFlow 2.6.x not compatible

Open jmsaurel opened this issue 3 years ago • 3 comments

Works and tested on TensorFlow versions 2.3.x and 2.4.x. TensorFlow version 2.6.x doesn't work. Add precisions in the doc about that.

jmsaurel avatar Jan 18 '22 15:01 jmsaurel

I was interested in testing phaseworm but at the moment it seems that tensorflow 2.3 and 2.4 are no longer available.

PackagesNotFoundError: The following packages are not available from current channels:

   - tensorflow=2.4

Using tensorflow 2.5, the installation process completes successfully, but when I run it I get the following messages:

$ phaseworm -c ../ew_env/params/config_rt.cfg
Configuration file <../ew_env/params/config_rt.cfg> read
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:138: UserWarning: `tf.layers.conv2d` is deprecated and will be removed in a future version. Please Use `tf.keras.layers.Conv2D` instead.
  net = tf.compat.v1.layers.conv2d(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:147: UserWarning: `tf.layers.batch_normalization` 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).
  net = tf.compat.v1.layers.batch_normalization(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:153: UserWarning: `tf.layers.dropout` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dropout` instead.
  net = tf.compat.v1.layers.dropout(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:163: UserWarning: `tf.layers.conv2d` is deprecated and will be removed in a future version. Please Use `tf.keras.layers.Conv2D` instead.
  net = tf.compat.v1.layers.conv2d(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:173: UserWarning: `tf.layers.batch_normalization` 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).
  net = tf.compat.v1.layers.batch_normalization(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:178: UserWarning: `tf.layers.dropout` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dropout` instead.
  net = tf.compat.v1.layers.dropout(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:186: UserWarning: `tf.layers.conv2d` is deprecated and will be removed in a future version. Please Use `tf.keras.layers.Conv2D` instead.
  net = tf.compat.v1.layers.conv2d(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:197: UserWarning: `tf.layers.batch_normalization` 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).
  net = tf.compat.v1.layers.batch_normalization(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:202: UserWarning: `tf.layers.dropout` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dropout` instead.
  net = tf.compat.v1.layers.dropout(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:212: UserWarning: `tf.layers.conv2d_transpose` is deprecated and will be removed in a future version. Please Use `tf.keras.layers.Conv2DTranspose` instead.
  net = tf.compat.v1.layers.conv2d_transpose(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:222: UserWarning: `tf.layers.batch_normalization` 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).
  net = tf.compat.v1.layers.batch_normalization(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:227: UserWarning: `tf.layers.dropout` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dropout` instead.
  net = tf.compat.v1.layers.dropout(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:237: UserWarning: `tf.layers.conv2d` is deprecated and will be removed in a future version. Please Use `tf.keras.layers.Conv2D` instead.
  net = tf.compat.v1.layers.conv2d(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:247: UserWarning: `tf.layers.batch_normalization` 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).
  net = tf.compat.v1.layers.batch_normalization(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:252: UserWarning: `tf.layers.dropout` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dropout` instead.
  net = tf.compat.v1.layers.dropout(net,
/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/model.py:260: UserWarning: `tf.layers.conv2d` is deprecated and will be removed in a future version. Please Use `tf.keras.layers.Conv2D` instead.
  net = tf.compat.v1.layers.conv2d(net,
Traceback (most recent call last):
  File "/opt/miniconda3/envs/phaseworm/bin/phaseworm", line 8, in <module>
    sys.exit(main())
  File "/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phaseworm_sources/phaseworm.py", line 493, in main
    run_loop()
  File "/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phaseworm_sources/phaseworm.py", line 436, in run_loop
    sess, model = init_pred(phasenet_config, conf.phasenet)
  File "/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/phasenet/app.py", line 129, in init_pred
    saver.restore(sess, latest_check_point)
  File "/opt/miniconda3/envs/phaseworm/lib/python3.8/site-packages/tensorflow/python/training/saver.py", line 1406, in restore
    raise ValueError("Can't load save_path when it is None.")
ValueError: Can't load save_path when it is None.

Is anyone else facing this issue? Do you have any suggestions on how to proceed? I might be available to support development and debugging. Please let me know. Thanks.

matteoquintiliani avatar Mar 07 '25 08:03 matteoquintiliani

Hello @matteoquintiliani ,

Thanks for your interest and the report that TensorFlow 2.4 is no more available. I just checked and saw that PhaseNet (https://github.com/AI4EPS/PhaseNet/) has been upgraded to TensorFlow 2.11 lately.

So I guess what we would need to do is to upgrade the PhaseNet code (in the directory Phasenet) to this newer version and hopefully it will work again.

jmsaurel avatar Mar 08 '25 18:03 jmsaurel

"ValueError: Can't load save_path when it is None." , are you sure the directory to store picks exists and is correctly set in the configuration file ? the others should be just warnings ;

tensorflow 2.3 is available if you install it with miniconda , install miniconda 3 , ( Miniconda3-py312_25.1.1-2-Linux-x86_64 ) activate miniconda with source [/installation_path/]miniconda3/activate then follow the instruction for conda installation , it work well togheter with ew 7.1 on devuan daedalus ( debian 12 )

rlfesta avatar Apr 03 '25 19:04 rlfesta