私は、テクスチャとして画像を格納するtfrecordsファイルを持っています。私はこのためのフィーチャーカラムをtf.feature_column.numeric_column("image", shape=[64, 64], dtype=tf.float32)
と定義したいが、それはtfrecordsファイルにfloat_listとして格納されていないので、これは動作しない。tfrecordsの生のバイトをtf.feature_column.numeric_columnの機能にデコードします。
次に、私が定義したnumeric_columnのnormalizer_fn引数を使用しようとしました。
def decode(image_bytestring):
img = tf.reshape(tf.decode_raw(image_bytestring, tf.uint8), [28, 28])
img = tf.cast(img, tf.float32)
return img
...
examples = tf.parse_example(
serialized_batch,
tf.feature_column.make_parse_example_spec(feature_columns))
最初の問題は、しかし、このfeature_columnによって生成されたパーススペックFixedLenFeature(shape=(28, 28), dtype=tf.float32, default_value=None)
は、それが実際にエラーが発生した文字列として保存されているときのfloat32のために解析すると言うことです。したがって、デコード機能は使用されません。
代わりに、tf.fature_columnを使用してtfrecordにfloat_listとしてイメージを格納する以外に方法がありますか?
静的型システムのように見えますが、マッピング関数から正しい型のフィーチャを保証するのがいいでしょう。