質問するログイン新規登録

質問編集履歴

1

詳細を加筆

2021/09/30 16:06

投稿

josterjonathan
josterjonathan

スコア24

title CHANGED
File without changes
body CHANGED
@@ -9,6 +9,12 @@
9
9
  // 追加したメソッド
10
10
  def set_mini(self):
11
11
  self.mini = Sequential([self.layers[0]])
12
+
13
+ // MySequentialインスタンスを生成
14
+ my_model = MySequential([
15
+ // ...
16
+ ])
17
+ my_model.set_mini() // -> OK
12
18
  ```
13
19
 
14
20
 
@@ -17,6 +23,7 @@
17
23
  loaded_model = keras.models.load_model('hoge_model.h5')
18
24
  loaded_model.set_mini() // -> Error!
19
25
  ```
26
+ ここで、ロードしたモデル(Sequentialオブジェクト)に対してもset_mini()ができる(またはそれと同等の動作をする)ようなプログラムが書きたい。
20
27
 
21
28
  # 望ましくない解決策
22
29
  Sequentialクラスに直接メソッドを追加する([参考ページ](https://www.lifewithpython.com/2014/08/python-add-instance-methods-to-existing-class.html))。
@@ -28,8 +35,9 @@
28
35
  loaded_model = keras.models.load_model('hoge_model.h5')
29
36
  loaded_model.set_mini() // -> OK
30
37
  ```
31
- しかしこの方法を使うとメソッドオーバーライドできなくな
38
+ 継承を使えばSequentialクラスの他のメソッドオーバーライドできるし、そちらの方が便利...
39
+ 継承して新しいクラスを作ることで問題解決したい。
32
40
 
33
41
  ---
34
42
 
35
- 質問が抽象的なのですが、ご教示よろしくお願いいたします。
43
+ よろしくお願いいたします。