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

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

新規登録して質問してみよう
ただいま回答率
85.48%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1847閲覧

TensorflowでThe last dimension of the inputs to `Dense` should be defined. Found `None`.というエラーが出る

tanshoko

総合スコア9

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/01/21 07:38

Tensorflow(1.12)でNNの層を作っています。

python

1def _conv1d_block(inputs, filters, keep_prob=0.25, name='conv'): 2 with tf.variable_scope(name): 3 conv = tf.contrib.layers.conv1d(inputs, filters, kernel_size=2, stride=1, padding='same') 4 #conv = tf.contrib.layers.batch_norm(conv, updates_collections=None, decay=0.99, scale=True, center=True) 5 conv = tf.layers.max_pooling1d(conv, pool_size=2, strides=2, padding='same') 6 conv = tf.nn.dropout(conv, keep_prob=keep_prob) 7 return conv 8 9 10def conv1d(x, z_dim, reuse=False): 11 with tf.variable_scope('conv1d', reuse=reuse): 12 net = _conv1d_block(x, filters=66, keep_prob=0.25, name='conv_1') 13 net = _conv1d_block(net, filters=132, keep_prob=0.3, name='conv_2') 14 #net = conv_block(net, filters=264, keep_prob=0.5, name='conv_3') 15 net = tf.contrib.layers.flatten(net) 16 net = tf.layers.dense(net, 64) 17 net = tf.nn.relu(net) 18 #net = tf.nn.dropout(net, keep_prob=0.4) 19 net = tf.layers.dense(net, z_dim) 20 #net = tf.nn.relu(net) 21 22 return net 23 24 25def _conv2d_block(inputs, out_channels, keep_prob=0.5, name='conv'): 26 with tf.variable_scope(name): 27 conv = tf.layers.conv2d(inputs, out_channels, kernel_size=2, padding='SAME') 28 #conv = tf.contrib.layers.batch_norm(conv, updates_collections=None, decay=0.99, scale=True, center=True) 29 conv = tf.nn.relu(conv) 30 conv = tf.contrib.layers.max_pool2d(conv, 2) 31 conv = tf.nn.dropout(conv, keep_prob=keep_prob) 32 return conv 33 34 35def conv2d(x, z_dim, reuse=False): 36 with tf.variable_scope('conv2d', reuse=reuse): 37 net = _conv2d_block(x, 32, keep_prob=0.25, name='conv_1') 38 net = _conv2d_block(net, 64, keep_prob=0.3, name='conv_2') 39 net = _conv2d_block(net, 128, keep_prob=0.5, name='conv_3') 40 #net = _conv2d_block(net, z_dim, name='conv_4') 41 net = tf.contrib.layers.flatten(net) 42 net = tf.layers.dense(net, 64) 43 net = tf.nn.relu(net) 44 #net = tf.nn.dropout(net, keep_prob=0.4) 45 net = tf.layers.dense(net, z_dim) 46 #net = tf.nn.relu(net) 47 return net

このように、conv1dとconv2dでほとんど作りは同じなのに、conv2dのみエラーが出てしまいます。
エラーは以下のように、次元がNoneになっているということです。conv1dでは同じことができているのにconv2dではできないのは、なぜでしょうか?

File "/fewshot/models/nnlib.py", line 51, in conv2d net = tf.layers.dense(net, 64) File "/anaconda3/envs/tf1_12/lib/python3.6/site-packages/tensorflow/python/layers/core.py", line 184, in dense return layer.apply(inputs) File "/anaconda3/envs/tf1_12/lib/python3.6/site-packages/tensorflow/python/keras/engine/base_layer.py", line 817, in apply return self.__call__(inputs, *args, **kwargs) File "/anaconda3/envs/tf1_12/lib/python3.6/site-packages/tensorflow/python/layers/base.py", line 374, in __call__ outputs = super(Layer, self).__call__(inputs, *args, **kwargs) File "/anaconda3/envs/tf1_12/lib/python3.6/site-packages/tensorflow/python/keras/engine/base_layer.py", line 746, in __call__ self.build(input_shapes) File "/anaconda3/envs/tf1_12/lib/python3.6/site-packages/tensorflow/python/keras/layers/core.py", line 933, in build raise ValueError('The last dimension of the inputs to `Dense` ' ValueError: The last dimension of the inputs to `Dense` should be defined. Found `None`.

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

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

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

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

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

guest

回答1

0

自己解決

placeholderに入れたデータの型が間違っていたのが原因でした。

投稿2019/01/21 09:01

tanshoko

総合スコア9

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問