TensorFlow / Keras:出力レイヤーの形状エラー

ディランマレー

私はこのエラーの解決策を見つけようとして数日間インターネットを検索してきましたが、特に当てはまるものは見つかりませんでした。

ValueError: Error when checking target: expected dense_2 to have shape (300,) but got array with shape (60,)

エラーを生成するコードは次のとおりです(データの前処理以外):

model = keras.Sequential([
keras.layers.Conv1D(5,input_shape=(1,60), kernel_size=12, padding='same'), 
keras.layers.Conv1D(10, padding='same',activation=tf.nn.relu, kernel_size=10),
keras.layers.Conv1D(20, padding='same',activation=tf.nn.relu, kernel_size=6),
keras.layers.Conv1D(30, padding='same',activation=tf.nn.relu, kernel_size=5),
keras.layers.Flatten(),
keras.layers.Dense(70, activation="relu"),
keras.layers.Dense(300,activation="tanh")
])
model.compile(optimizer=tf.train.AdamOptimizer(0.001),
loss='mse',
metrics=['mae'])
model.fit(traindata,trainlabels, epochs=10, batch_size=int(len(traindata)/60))

このエラーの原因については正確にはわかりませんが、トラブルシューティングを行って可能性を絞り込みました。

私が最初に試みたのは、TensorFlow Webサイトから例の1つを実行してみることでしここにある、MNISTファッションの例を選択しまし

これはエラーなしで実行され、正常にトレーニングされたため、TensorFlowまたはPythonのダウンロードのエラーではないと思います。

次に、MNISTファッションの例で使用されたモデルをコピーして、モデルのエラーかどうかをテストしました。これはコードです:

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(60,)),
    keras.layers.Dense(128, activation=tf.nn.relu),
    keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer=tf.train.AdamOptimizer(),
loss = 'sparse_categorical_cross_entropy',
metrics = ['accuracy']
)

モデルに加えた唯一の変更は、最初のレイヤーへの入力シェイプでした。これにより、データを取り込むことができるようになりました。ただし、エラーは引き続き発生しました。

ValueError: Error when checking target: expected dense_1 to have shape (10,) but got array with shape (60,)

私が最後に試したのは、を介して作成されたダミーデータを取り込む独自の高密度モデルを作成することnp.random.randomでした。

これはファイル全体です:

import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt

data = np.random.random((50,60))
datalabels = np.random.random((50,60))
model = keras.Sequential([
keras.layers.Dense(128,input_shape=(60,), activation="relu"),
keras.layers.Dense(50, activation="relu"),
keras.layers.Dense(10, activation="tanh")

])
model.compile(optimizer=tf.train.AdamOptimizer(),
loss="mae",
metrics=['mse'])

model.fit(data, datalabels, epochs=5, batch_size=10)

これもエラーが発生し、理由がわかりませんが、ダミーデータの生成に関係しているのではないかと思います。

ValueError: Error when checking target: expected dense_2 to have shape (10,) but got array with shape (60,)

それが役立つ場合は、最後のモデルのすべてのレイヤーとその入力および出力の形状を印刷しました。

Layer: dense
    input_shape: (None, 60)
    output_shape: (None, 128)
Layer: dense_1
    input_shape: (None, 128)
    output_shape: (None, 50)
Layer: dense_2
    input_shape: (None, 50)
    output_shape: (None, 10)

このエラーについて私が最も困惑しているのは、出力レイヤーでのエラーのみであるということです。モデルの最後に別のレイヤーを追加すると、出力レイヤーのユニット数がモデルの入力の形状と等しくない限り、そのレイヤーはエラーになります(例:input_shape=(60,)最後のレイヤーのユニット数が等しい場合) 60まで)。なぜこれが起こっているのか誰かが知っていますか?

今日

を使用するmodel.summary()と、各レイヤーの出力形状が表示されます。提供した最初の例では、最後のレイヤーの出力形状(モデルの出力形状でもあります)は(None, 300)です。これは、形状のラベル(300,)(つまり、各ラベルの形状を期待することを意味します。しかし、それは呼び出し時に、あなたがモデルに提供ラベル配列と思われるfit、すなわちtrainlabels、の形状を有しています(num_samples, 60)一方、モデルの出力形状と一致している必要があるため、の形状は(num_samples, 300)です。同じことが、あなたが言及した他のすべての失敗した例にも当てはまります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

TensorFlow / Kerasで中間レイヤーの出力を取得する

分類Dev

KerasでのTensorflowレイヤーの使用

分類Dev

複数のクラスを持つ最後の出力レイヤー。Tensorflowに支えられたKeras

分類Dev

Tensorflow2でtf.kerasマージレイヤーを使用して「出力を計算できませんでした」エラー

分類Dev

Keras / Tensorflow予測:配列形状のエラー

分類Dev

RNNレイヤーへのKeras / Tensorflow入力

分類Dev

Keras / Tensorflow:すべてのレイヤーの予測または出力を効率的に取得します

分類Dev

Tensorflowで出力レイヤーのノルムを計算する

分類Dev

Tensorflowコードの形状エラー

分類Dev

Keras + Tensorflowを使用してConvNetをトレーニング中に互換性のない形状エラー

分類Dev

Keras(Tensorflow)でモデルをトレーニングするときの形状エラー

分類Dev

Tensorflow / Keras Flattenレイヤーがアレイをフラット化しないのはなぜですか?

分類Dev

feed_dictのTensorFlow形状エラー

分類Dev

Tensorflow-keras-'strided_slice 'の形状エラー(サイズ変更されたMNISTデータセットを使用)

分類Dev

kerasまたはTensorflowのLSTMレイヤーの前に高密度レイヤーを追加しますか?

分類Dev

Tensorflow2.0のKeras入力レイヤーでのtf.data.Datasetの使用

分類Dev

入力レイヤーエラー時のKeras入力レイヤー形状

分類Dev

TensorFlowモデルの非表示レイヤー間の値を出力します

分類Dev

レイヤーがエラーを報告したので、tensorflow.contrib.layersをインポートします

分類Dev

プレースホルダーの形状に関するTensorflowエラー

分類Dev

Tensorflow-KerasエラーのあるGPU

分類Dev

tensorflow 2.0.0のmodel.build()の後でも、レイヤーがビルドされないエラー

分類Dev

トレーニングされたCNNモデルの特定のレイヤーの出力を取得する方法[Tensorflow]

分類Dev

TensorFlowカスタムレイヤーの正しい形状を取得できません

分類Dev

Tensorflow-Numpy配列と形状エラー

分類Dev

トレーニング中のTensorflow定数レイヤー

分類Dev

Tensorflow高密度レイヤー操作

分類Dev

tensorflowのctc損失レイヤーのラベルを設計する方法

分類Dev

Keras / TensorFlowのカスタムレイヤーでカーネル正則化を適用する方法

Related 関連記事

  1. 1

    TensorFlow / Kerasで中間レイヤーの出力を取得する

  2. 2

    KerasでのTensorflowレイヤーの使用

  3. 3

    複数のクラスを持つ最後の出力レイヤー。Tensorflowに支えられたKeras

  4. 4

    Tensorflow2でtf.kerasマージレイヤーを使用して「出力を計算できませんでした」エラー

  5. 5

    Keras / Tensorflow予測:配列形状のエラー

  6. 6

    RNNレイヤーへのKeras / Tensorflow入力

  7. 7

    Keras / Tensorflow:すべてのレイヤーの予測または出力を効率的に取得します

  8. 8

    Tensorflowで出力レイヤーのノルムを計算する

  9. 9

    Tensorflowコードの形状エラー

  10. 10

    Keras + Tensorflowを使用してConvNetをトレーニング中に互換性のない形状エラー

  11. 11

    Keras(Tensorflow)でモデルをトレーニングするときの形状エラー

  12. 12

    Tensorflow / Keras Flattenレイヤーがアレイをフラット化しないのはなぜですか?

  13. 13

    feed_dictのTensorFlow形状エラー

  14. 14

    Tensorflow-keras-'strided_slice 'の形状エラー(サイズ変更されたMNISTデータセットを使用)

  15. 15

    kerasまたはTensorflowのLSTMレイヤーの前に高密度レイヤーを追加しますか?

  16. 16

    Tensorflow2.0のKeras入力レイヤーでのtf.data.Datasetの使用

  17. 17

    入力レイヤーエラー時のKeras入力レイヤー形状

  18. 18

    TensorFlowモデルの非表示レイヤー間の値を出力します

  19. 19

    レイヤーがエラーを報告したので、tensorflow.contrib.layersをインポートします

  20. 20

    プレースホルダーの形状に関するTensorflowエラー

  21. 21

    Tensorflow-KerasエラーのあるGPU

  22. 22

    tensorflow 2.0.0のmodel.build()の後でも、レイヤーがビルドされないエラー

  23. 23

    トレーニングされたCNNモデルの特定のレイヤーの出力を取得する方法[Tensorflow]

  24. 24

    TensorFlowカスタムレイヤーの正しい形状を取得できません

  25. 25

    Tensorflow-Numpy配列と形状エラー

  26. 26

    トレーニング中のTensorflow定数レイヤー

  27. 27

    Tensorflow高密度レイヤー操作

  28. 28

    tensorflowのctc損失レイヤーのラベルを設計する方法

  29. 29

    Keras / TensorFlowのカスタムレイヤーでカーネル正則化を適用する方法

ホットタグ

アーカイブ