TFRecords
をceleba face datasetに使用します。セレバ顔dataseは、5つのランドマークの場所、40のバイナリ属性の注釈をイメージごとに持っています。マルチタスクのデータセットのテンソルフローTFRコードの使用
TFRecords
は、1つのlableを与えることができます。私はこのラベルをすべてTFRコードに保存したい。 これをどのようにテンソルフローで行うことができますか?
私のソリューションは、次のとおりです。 私はTFRecords
ファイルを作成するためにthisを使用しています。 次に、celeba属性ファイルを.csv
に変換し、_dataset = pd.read_csv("./List_attr_celeba.csv")
で読んでいます。
次に、パスに_dataset["path"] = './img_align_celeba/' + _dataset["name"]
を追加します。 (私はimg_align_celeba
フォルダにあった画像を整列して使用しました)。
初めての場合、私はlabels = _dataset.ix[:,1:11].as_matrix()
を使用しました。コードで
:
example = tf.train.Example(features=tf.train.Features(feature={ 'height': _int64_feature(rows), 'width': _int64_feature(cols), 'depth': _int64_feature(depth), 'label': _int64_feature(int(labels[index])), 'image_raw': _bytes_feature(image_raw)}))
ラベルは'(<class 'int'>,)
であってもよいが、<class 'numpy.ndarray'>
を入力labels[index]
ていなければなりません。
は、だから私は変更:
example = tf.train.Example(features=tf.train.Features(feature={ 'height': _int64_feature(rows), 'width': _int64_feature(cols), 'depth': _int64_feature(depth), 'label': _int64_feature(labels[index].tolist()), 'image_raw': _bytes_feature(image_bytes)})) writer.write(example.SerializeToString())
と:
def _int64_feature(value): if type(value)!= list: value = [value] return tf.train.Feature(int64_list=tf.train.Int64List(value=value))
私の問題は、私は 'numpy'を使用したことでした'配列'しかし、私は 'labels [index]'の 'tolist()'関数を使い、numpy.int32をintに変換します。 – Tavakoli
これはうまく聞こえます。あなたは何が問題なのかを精緻化/明確化できますか? –
質問に追加します。 – Tavakoli