前提・実現したいこと
kerasでConv2Dを使ったAutoencoderを試してみたいと思っているのですがエラーが出てこまってます。解決策を知っている人いっらしゃりませんか。
検索してみると変数を上書きしているとか、定義していないとかが解決策として見つかりますが、自分で見た限りそういったミスはないように見えます。
発生している問題・エラーメッセージ
/Users/home/Desktop/work/Python/scraping/lib/python3.6/site-packages/keras/engine/network.py:180: UserWarning: Model inputs must come from `keras.layers.Input` (thus holding past layer metadata), they cannot be the output of a previous non-Input layer. Here, a tensor specified as input to your model was not an Input tensor, it was generated by layer max_pooling2d_2. Note that input tensors are instantiated via `tensor = keras.layers.Input(shape)`. The tensor that caused the issue was: max_pooling2d_2/MaxPool:0 str(x.name)) Traceback (most recent call last): File "toy.py", line 44, in <module> decoder = Model(encoded,outputs,name='decoder') File "/Users/home/Desktop/work/Python/scraping/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper return func(*args, **kwargs) File "/Users/home/Desktop/work/Python/scraping/lib/python3.6/site-packages/keras/engine/network.py", line 93, in __init__ self._init_graph_network(*args, **kwargs) File "/Users/home/Desktop/work/Python/scraping/lib/python3.6/site-packages/keras/engine/network.py", line 231, in _init_graph_network self.inputs, self.outputs) File "/Users/home/Desktop/work/Python/scraping/lib/python3.6/site-packages/keras/engine/network.py", line 1443, in _map_graph_network str(layers_with_complete_input)) ValueError: Graph disconnected: cannot obtain value for tensor Tensor("encoder_input:0", shape=(?, 28, 28, 1), dtype=float32) at layer "encoder_input". The following previous layers were accessed without issue: []
該当のソースコード
python
1input_shape = (28,28,1) 2 3inputs = Input(shape=input_shape,name='encoder_input') 4x = Conv2D(filters=64,kernel_size=3,activation='relu',padding='same')(inputs) 5x = MaxPooling2D(pool_size=(2,2),padding='same')(x) 6x = Conv2D(filters=128,kernel_size=3,activation='relu',padding='same')(x) 7encoded = MaxPooling2D(pool_size=(2,2),padding='same')(x) 8 9# instantiate encoder model 10encoder = Model(inputs,encoded,name='encoder') 11encoder.summary() 12plot_model(encoder,to_file='autoconv_encoder.png',show_shapes=True) 13 14x = Conv2D(filters=128,kernel_size=3,activation='relu',padding='same')(encoded) 15x = UpSampling2D((2,2))(x) 16x = Conv2D(filters=64,kernel_size=3,activation='relu',padding='same')(x) 17x = UpSampling2D((2,2))(x) 18outputs = Conv2D(filters=1,kernel_size=3,activation='sigmoid',padding='same',name='decoder_output')(x) 19 20# instaitiate decoder model 21decoder = Model(encoded,outputs,name='decoder') 22decoder.summary() 23plot_model(decoder,to_file='autoconv_decoder.png',show_shapes=True) 24

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/31 04:43
2020/04/25 16:55