seq2seq neural network instalar cnn python tensorflow

python - neural - tensorflow models



¿Qué es tensorflow.compat.as_str()? (3)

En el tutorial de Google / Udemy Tensorflow hay el siguiente código:

import tensorflow as tf ... def read_data(filename): """Extract the first file enclosed in a zip file as a list of words""" with zipfile.ZipFile(filename) as f: data = tf.compat.as_str(f.read(f.namelist()[0])).split() return data

Esto se ejecuta bien, pero no puedo encontrar compat.as_str en la documentación de Tensorflow o en cualquier otro lugar.

P1: ¿Qué hace compat.as_str ?

P2: ¿Esta biblioteca de compat tensorflow está documentada en alguna parte?

P3: esta es una llamada a la biblioteca de tensorflow, así que, ¿cómo y por qué funciona en el código de Python normal, en lugar de dentro de un gráfico de tensorflow? Es decir, pensé que las llamadas a la biblioteca de tensorflow tenían que estar dentro de un bloque de definición de gráfico de tensorflow:

graph = tf.Graph() with graph.as_default() ... tensorflow function calls here ...

Estoy ejecutando python 2.7.


  1. tf.compat.as_str convierte la entrada en una cadena

  2. No pude encontrar ninguna documentación, pero puedes ver el código fuente here

  3. Tensorflow funciona como un módulo python. El contexto del gráfico se usa para definir un gráfico (cálculos matemáticos) que se usará para entrenar el modelo.

el uso típico implica el administrador de contexto Graph.as_default (), que anula el gráfico predeterminado actual durante la vida útil de los contextos


Básicamente, proviene del hecho de que en Python 2, las cadenas se trataron principalmente como bytes, no como unicode.
En Python 3, todas las cadenas son nativas Unicode.
El propósito de la función es garantizar que, independientemente de la versión de Python que estés usando, no te molesten, por lo que el nombre del módulo compatible es compatible.

Bajo el capó, tensorflow.compat.as_str convierte tanto bytes como cadenas unicode cadenas unicode .

Signature: tensorflow.compat.as_str(bytes_or_text, encoding=''utf-8'') Docstring: Returns the given argument as a unicode string. Args: bytes_or_text: A `bytes`, `str, or `unicode` object. encoding: A string indicating the charset for decoding unicode. Returns: A `unicode` (Python 2) or `str` (Python 3) object. Raises: TypeError: If `bytes_or_text` is not a binary or unicode string.

La biblioteca está documentada here .


En una versión actual de TF, todo el grupo here está bien documentado.

Básicamente, algunas cosas se comportan de manera diferente en Python 2 y 3 (pueden ser un poco inexactas, los gurús de Python pueden ayudarme con esto). Python3 usa flotadores de 64 bits y flotadores de 32 bits de Python2, también hay diferencias con respecto a las strings . El módulo Compat intenta que las cosas se comporten de la misma manera (si comprueba el código fuente , verá que hacen cosas diferentes dependiendo de si usa 2 o 3).

tf.compat.as_str :

Convierte bytes o unicode en bytes, utilizando la codificación utf-8 para texto.

Esto puede ser útil si guarda los datos en tfrecords y quiere asegurarse de que se guardarán de la misma manera, sin importar qué versión de python se use.