質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

Q&A

解決済

1回答

1055閲覧

tensorflowで保存したモデルの重み・バイアスを見て特徴量を人が判断したい tf.data-00000-of-00001、tf.indexファイル

rrrkkkrr

総合スコア3

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

CNN (Convolutional Neural Network)

CNN (Convolutional Neural Network)は、全結合層のみではなく畳み込み層とプーリング層で構成されるニューラルネットワークです。画像認識において優れた性能を持ち、畳み込みニューラルネットワークとも呼ばれています。

0グッド

0クリップ

投稿2021/06/29 09:03

編集2021/07/07 00:45

〇前提及び問題
物体検知「YoLov3-tf2」を活用し、学習したモデルの各層の重みやバイアスの値をテキスト形式やCSV形式、もしくは可読性のある形式で出力させたいのですが、どのようにすればよいのでしょうか。

現状は学習結果である、下記2つのモデルの重みであるチェックポイントファイルがあります。具体的には保存されている「(ファイル名).tf.data-00000-of-00001」ファイル、「(ファイル名).tf.index」ファイルが一組ある状態です。
・「(ファイル名).tf.data-00000-of-00001」ファイル
・「(ファイル名).tf.index」ファイル

このモデル(の重み?)を出力したのは、tensorflow.keras.callbacksからimportされた"ModelCheckpoint"であることが分かっています。
https://keras.io/ja/callbacks/
https://www.tensorflow.org/tutorials/keras/save_and_load?hl=ja
https://tensorflow.google.cn/guide/checkpoint?hl=ja

そのほかに、上記サイトを確認しているのですが、
重みデータ・バイアスデータを取り出す手段が分からない状態です。

〇実現したい事
実際にはフィルターの重みデータ、バイアスデータを取り出し、
画像を入力としたときのCNNにおける一層目、二層目等の特徴抽出を人が判断できないかと考えています。

大変お手数ですが、教えて頂けないでしょうか。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一度modelとして読み込んでから取り出す必要があります。

1, 2層目の重み、バイアスを取り出す例は以下になります。

python

1# 読み込み 2model.load_weights('ファイル名') 3 4for i in [0, 1]: 5 # 重み、バイアスを取り出す 6 weights = model.layers[i].weights 7 bias = model.layers[i].bias 8 9 print(weights) 10 print(bias) 11 12 # 値のみをみたい場合はnumpy.arrayに変換 13 numpy_weights = weights.numpy() 14 numpy_bias = bias.numpy() 15 16 print(numpy_weights) 17 print(numpy_bias)

投稿2021/07/08 00:52

nnkkmto

総合スコア175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rrrkkkrr

2021/07/15 04:34

ご回答いただきありがとうございました! 頂いたコードを元に試してみたところ、下記のようにカーネルの重みの出力を確認できました! <tf.Variable 'conv2d/kernel:0' shape=(3, 3, 3, 32) dtype=float32, numpy= array([[[[ 0.07015305, 0.076549 , -0.02995397, 0.1182729 , 0.12483283, -0.12004925, -0.05116947, -0.09352171, 0.10391062, -0.09203933, -0.11737584, -0.08001018, 0.14333883, -0.01516903, -0.01431977, -0.09329043, 0.11588342, -0.12322813, -0.05881959, 0.09926157, -0.06240901, -0.00975447, 0.10688518, 0.00044921, -0.00163755, -0.11484136, 0.05179632, 0.11473686, 0.05659151, -0.03311876, -0.11889277, -0.05302214],...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問