4
トレーニングサンプルごとにN個の分類ラベルが必要なCNNモデルがあり、データセットからint64のリストであるラベル機能を持つTFRecordsを作成しようとしています。リストであるTFRecord機能をどのように作成して取得しますか?
シャード作成側では、次のようなものを使用しています。私は、コード内で明示的にラベルデータを入れているが、明らかにそれは、各サンプルごとに異なるだろう:読み出し側の
example = tf.train.Example(features=tf.train.Features(feature={
... # other stuff
'label': tf.train.Feature(
int64_list=tf.train.Int64List(value=[1, 2, 3, 4])}))
writer.write(example.SerializeToString())
が、私は次のようなものをやっています。私は(4)ラベルの固定数を想定しています。私はこのTensorflowが報告しようとすると
features = tf.parse_single_example(
serialized_example,
# Defaults are not specified since both keys are required.
features={
... # other stuff
'label': tf.FixedLenFeature(
[4], dtype=tf.int64, default_value=-1)}
)
label = features['label']
:
明らかにValueError: Cannot reshape a tensor with 1 elements to shape [4] (4 elements)
を、私は
以下のコメントは、コードのバグを明確にしています。値のリストの場合、default_value引き数は形状に準拠していなければなりません。したがって、default_value = -1の代わりに、上記のコードはdefault_value = [ - 1] * 4でなければなりません。私はそのバグを投稿しています。 – bobw
私はあなたの例をint64s のリストを入力して入力しましたが、次のエラーがあります。 'TypeError:[0、0、0、0、0、0、0、0、0、0、0 ]のタイプがですが、(,)のいずれかになると予想されます。 ご意見がありましたら幸いですか? –
Yanagiba
default_valueを削除して試してください。 – lxkarthi