LoginSignup
10
3

More than 3 years have passed since last update.

【Mask R-CNN】AttributeError: module 'tensorflow' has no attribute 'log' を解決した話。

Last updated at Posted at 2020-04-21

※2020/05/18追記

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

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

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

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

画像認識でMask R-CNNを使ってみたい場合、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のお悩み相談箱みたいなものです。

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

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とかを進めることで解決できたようでした。
(なんか、その場しのぎな解決方法な気がするので、
本当の原因を知っている人がいたら教えてください。)

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

10
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3