Tensorflow版本問題的一系列報錯解決方案

一下的報錯均是由於將tensorflow1版本的代碼遷移到tensorflow2上產生的錯誤,主要是一些api的改動。

  File "D:\python\paperRecurrence\CasRel\CasRel-master\model.py", line 23, in E2EModel
    tokens_in = Input(shape=(None,),dtype=tf.int32)
  File "E:\environment\python\lib\site-packages\keras\engine\input_layer.py", line 178, in Input
    input_tensor=tensor)
  File "E:\environment\python\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "E:\environment\python\lib\site-packages\keras\engine\input_layer.py", line 39, in __init__
    name = prefix + '_' + str(K.get_uid(prefix))
  File "E:\environment\python\lib\site-packages\keras\backend\tensorflow_backend.py", line 74, in get_uid
    graph = tf.get_default_graph()
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'

將keras.layers.Input改爲tf.keras.layers.Input

 其他類似的改動還有:

將keras.layers.Lambda改爲tf.keras.layers.Lambda

將keras.layers.Dense改爲tf.keras.layers.Dense

將keras.models.Model改爲tf.keras.models.Model

將keras.layers.Add改爲tf.keras.layers.Add

 

  File "D:/python/paperRecurrence/CasRel/CasRel-master/run.py", line 47, in <module>
    subject_model, object_model, hbt_model = E2EModel(bert_config_path, bert_checkpoint_path, LR, num_rels)
  File "D:\python\paperRecurrence\CasRel\CasRel-master\model.py", line 63, in E2EModel
    sub_tails_loss = K.binary_crossentropy(gold_sub_tails, pred_sub_tails)
  File "E:\environment\python\lib\site-packages\keras\backend\tensorflow_backend.py", line 3376, in binary_crossentropy
    output = tf.log(output / (1 - output))
AttributeError: module 'tensorflow' has no attribute 'log'

將K.binary_crossentropy(K是keras.backend)改爲tf.keras.losses.binary_crossentropy

 

ValueError: ('Could not interpret optimizer identifier:', <keras.optimizers.Adam object at 0x000001CCA47E7CF8>)

將keras.optimizers.Adam改爲tf.keras.optimizers.Adam

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章