Help us understand the problem. What is going on with this article?

AttributeError: module 'tensorflow' has no attribute 'log' を解決した話。

※2020/05/18追記

下記の記事で新しい解決方法を紹介しています!

Mask R-CNNのdemoでtensorflowのバージョンをダウングレードした話。

Mask R-CNNを実装してみたかった

深層学習超初心者がエラーを解決した話です。
誰かの助けになればと思い、記事を書きました。

画像認識でMask R-CNNを使ってみたい場合、matterport社のMask_RCNNというコードを利用するのが近道です。

https://github.com/matterport/Mask_RCNN

これだけ読んでも良くわからなかったので、下記のサイトを読みながら、
Google colaboratory上でdemo.ipynbを実行しようとしました。

https://tech-blog.optim.co.jp/entry/2019/03/28/173000
http://maruo51.com/2020/02/22/mrcnn/

しかし!
そのまま実行しようとしても、

AttributeError: module 'tensorflow' has no attribute 'log' 

が発生してしまうのです。(2020年4月20日時点)

そこで、これを解決するために2日間くらい試行錯誤したので、
書き記しておきます。

解決方法(仮)

参考になるのは、以下に示すgithubのお悩み相談箱みたいなものです。

https://github.com/matterport/Mask_RCNN/issues/1797#

全部英語なのですが、頑張って読み進めたところ、ヒントになるような投稿を見つけました。

tf.log() -> tf.math.log()
tf.sets.set_intersection() -> tf.sets.intersection()
tf.sparse_tensor_to_dense() -> tf.sparse.to_dense()
tf.to_float() -> tf.cast([value], tf.float32)

どうやら、tensorflowのバージョンが違ってメゾットが変更になっていることに起因するエラーのようです。

この通りに、mrcnn/model.pyの該当箇所を書き直せばいいはずです。

注意点!

注意すべきは、エラーが出る最後まで行ってからmodel.pyを変更するのではなく、
最初にレポジトリをクローンした直後にmodel.pyを書き換えてしまうことです。

修正後のmodel.pyでsetupとかを進めることで解決できたようでした。
(なんか、その場しのぎな解決方法な気がするので、
本当の原因を知っている人がいたら教えてください。)

一件落着!
参考になったらいいねお願いします!

skperfarming
I don't know why but it works.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした