<p dir="auto">Please go to Stack Overflow for help and support:</p>
<p dir="auto"><a href="https://stackoverflow.com/questions/tagged/tensorflow" rel="nofollow">https://stackoverflow.com/questions/tagged/tensorflow</a></p>
<p dir="auto">If you open a GitHub issue, here is our policy:</p>
<ol dir="auto">
<li>It must be a bug, a feature request, or a significant problem with documentation (for small docs fixes please send a PR instead).</li>
<li>The form below must be filled out.</li>
<li>It shouldn't be a TensorBoard issue. Those go <a href="https://github.com/tensorflow/tensorboard/issues">here</a>.</li>
</ol>
<p dir="auto"><strong>Here's why we have that policy</strong>: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.</p>
<hr>
<h3 dir="auto">System information</h3>
<ul dir="auto">
<li><strong>Have I written custom code (as opposed to using a stock example script provided in TensorFlow)</strong>:</li>
<li><strong>OS Platform and Distribution (e.g., Linux Ubuntu 16.04)</strong>:</li>
<li><strong>Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device</strong>:</li>
<li><strong>TensorFlow installed from (source or binary)</strong>:</li>
<li><strong>TensorFlow version (use command below)</strong>:</li>
<li><strong>Python version</strong>:</li>
<li><strong>Bazel version (if compiling from source)</strong>:</li>
<li><strong>GCC/Compiler version (if compiling from source)</strong>:</li>
<li><strong>CUDA/cuDNN version</strong>:</li>
<li><strong>GPU model and memory</strong>:</li>
<li><strong>Exact command to reproduce</strong>:</li>
</ul>
<p dir="auto">You can collect some of this information using our environment capture script:</p>
<p dir="auto"><a href="https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh">https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh</a></p>
<p dir="auto">You can obtain the TensorFlow version with</p>
<p dir="auto">python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"</p>
<h3 dir="auto">Describe the problem</h3>
<p dir="auto">Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow or a feature request.</p>
<h3 dir="auto">Source code / logs</h3>
<p dir="auto">Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.</p>
<p dir="auto">I have posted 2 stack overflow questions regarding TF Records and (Sequence)Examples.<br>
I even had a bounty on one.<br>
Despite only receiving up-votes. Neither received any support.<br>
Both had an associated Colab document to assist.</p>
<p dir="auto">The questions where</p>
<ol dir="auto">
<li>
<p dir="auto">[Store images as byte strings or per channel?]<a href="https://stackoverflow.com/questions/52035692/tensorflow-v1-10-store-images-as-byte-strings-or-per-channel" rel="nofollow">https://stackoverflow.com/questions/52035692/tensorflow-v1-10-store-images-as-byte-strings-or-per-channel</a>)</p>
</li>
<li>
<p dir="auto"><a href="https://stackoverflow.com/questions/52064866/tensorflow-1-10-tfrecorddataset-recovering-tfrecords" rel="nofollow">Recovering TF Records</a></p>
</li>
</ol>
<p dir="auto">With the corresponding colabs</p>
<p dir="auto"><a href="https://colab.research.google.com/drive/1HUGoXfgxp0A_0eSdaCzutOkFvnYZ-egv" rel="nofollow">Colab 1</a><br>
<a href="https://colab.research.google.com/drive/1M10tbHih5eJ8LiApJSKKpNM79IconYJX" rel="nofollow">Colab 2</a></p>
<p dir="auto">I am creating an issue as I am struggling to see the consistency in the behavior between tf Records, Example, SequenceExample, Feature, Features, FeatureList, FeatureLists, FixLenFeature, FixLenSequenceFeature, and VarLenFeature.</p>
<p dir="auto">In this <a href="https://colab.research.google.com/drive/1M10tbHih5eJ8LiApJSKKpNM79IconYJX" rel="nofollow">Colab</a></p>
<p dir="auto">I survey 10 ways of encoding an array / array of arrays.</p>
<ul dir="auto">
<li>Example: Int64 feature (int array)</li>
<li>Example: Float feature (float array)</li>
<li>Example: Bytes feature (int array dumped to byte string)</li>
<li>SequenceExample: Int64 feature list (array of int arrays)</li>
<li>SequenceExample: Float feature list (array of float arrays)</li>
<li>SequenceExample: Bytes feature list (array of int arrays dumped to byte strings)</li>
<li>Example: Bytes feature (array of int arrays all of which is dumped to byte string)</li>
<li>SequenceExample: Bytes feature list (array of int arrays dumped to byte strings)</li>
<li>SequenceExample: Bytes feature list (array of int arrays all of which is dumped to byte string)</li>
<li>SequenceExample: Bytes feature list (array of int arrays, where each int is dumped to byte string)</li>
</ul>
<p dir="auto">In short, with the exception of 8, I was able to 'recover' (write to tf.record and read back the data). However, it should be noted that for methods 7 and 10, the retrieved array is flattened.</p>
<p dir="auto">Further, when I state 'recover' I mean that of course that the feature is wrapped in an addition array. e.g. shape (3, ) becomes (1, 3).</p>
<p dir="auto">As most tutorials of TF Record, Example and SequenceExample are just a rehashing of the one example provided in the TF Docs (for a movie recommender system, although code is provided for images).</p>
<p dir="auto">I think it would be beneficial for a "style guide" of sorts, given that one can their data in a myriad of ways. (e.g. are byte strings superior to float feature lists? should one break their image / sequence down per channel? why is there FixLenSeqeuenceFeature but no VarLenSequenceFeature?, if Example and SequenceExample are meant to contain a single data record, why are the only options List based features?)</p>
<p dir="auto">I would be happy to contribute to more documentation / examples if I knew the answer to these questions. However, to my unexperienced eyes the mismatch between converting data into a (Sequence)Example and extracting it out from a Record is bewildering.</p>
<hr>
<p dir="auto">TensorFlow Butler requested information:</p>
<p dir="auto">Have I written custom code: yes, see linked colabs and S.O. posts.<br>
OS Platform and Distribution: N/a (irrelevant, but Ubuntu 16.04LTS / macOS High Sierra)<br>
TensorFlow installed from: (irrelevant, but conda / Colab's V.M.)<br>
TensorFlow version: 1.10<br>
Bazel version: N/a<br>
CUDA/cuDNN version: N/a (irrelevant but latest / Colab's V.M.'s)<br>
GPU model and memory: N/a (irrelevant, but NVIDIA Titan X / NVIDIA Titan V / Colab's GPU)<br>
Exact command to reproduce: see linked to code<br>
Mobile device: N/a  (irrelevant)</p>
<p dir="auto">This is more of a "meta" question regarding the structuring of Example / SequenceExample, the correspondingly needed Feature, Features, FeatureList, FeatureLists, etc and the parsing equivalents FixedLenFeature, VariableLenFeature, FixedLenSequenceFeature.</p>
<p dir="auto">More specifically:</p>
<ul dir="auto">
<li>
<p dir="auto">a request for more documentation</p>
</li>
<li>
<p dir="auto">a request for "best" practices recording encoding of rank 2+ tensors</p>
<ul dir="auto">
<li>e.g. if I have a sequence in an <em>numpy.ndarray</em> with <em>n</em> channels should I "dump" (call <em>.tostring()</em>) on the entire sequence and store in a BytesFeature in an Example? or split each channel up into a Float/Int Feature (or dump to BytesFeature) in an Example / SequenceExample.</li>
</ul>
</li>
<li>
<p dir="auto">a request for "best" practices as to why ever use Example, when it seems that the "context features" are equivalent and then if sequence features are needed later it is easier to adapt? (i.e. the difference between context features in sequence example and normal features of example rather than just calling context features "meta-data" of the sequences)</p>
</li>
<li>
<p dir="auto">a request for "best' practices for recording rank 0 tensors (as they have to be wrapped into a feature list, so should similarly typed features be concatenated together)</p>
</li>
<li>
<p dir="auto">a request for elucidating why sometimes decoding a bytes array losses the rank from which it was encoded (see linked colab)</p>
</li>
<li>
<p dir="auto">a request for a mid-tier api at the feature level e.g. remove the need for the user to define how a feature should be encoded as a record and then decoded  (parsed) from a serialized record. I have a conceptual prototype that I can include here or in another colab if interested.</p>
</li>
</ul>
<p dir="auto">etc, etc</p>