Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

327
Views
TypeError: solo las matrices escalares enteras se pueden convertir en un índice escalar

Estoy probando un código de demostración simple de tensorflow desde el enlace de github.
Actualmente estoy usando la versión 3.5.2 de Python

 Z:\downloads\tensorflow_demo-master\tensorflow_demo-master>py Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32<br> Type "help", "copyright", "credits" or "license" for more information.

Me encontré con este error cuando probé board.py en la línea de comandos. He instalado todas las dependencias que se requieren para que esto funcione.

 def _read32(bytestream): dt = numpy.dtype(numpy.uint32).newbyteorder('>') return numpy.frombuffer(bytestream.read(4), dtype=dt) def extract_images(filename): """Extract the images into a 4D uint8 numpy array [index, y, x, depth].""" print('Extracting', filename) with gzip.open(filename) as bytestream: magic = _read32(bytestream) if magic != 2051: raise ValueError( 'Invalid magic number %d in MNIST image file: %s' % (magic, filename)) num_images = _read32(bytestream) rows = _read32(bytestream) cols = _read32(bytestream) buf = bytestream.read(rows * cols * num_images) data = numpy.frombuffer(buf, dtype=numpy.uint8) data = data.reshape(num_images, rows, cols, 1) return data Z:\downloads\tensorflow_demo-master\tensorflow_demo-master>py board.py Extracting Z:/downloads/MNIST dataset\train-images-idx3-ubyte.gz Traceback (most recent call last): File "board.py", line 3, in <module> mnist = input_data.read_data_sets(r'Z:/downloads/MNIST dataset', one_hot=True) File "Z:\downloads\tensorflow_demo-master\tensorflow_demo-master\input_data.py", line 150, in read_data_sets train_images = extract_images(local_file) File "Z:\downloads\tensorflow_demo-master\tensorflow_demo-master\input_data.py", line 40, in extract_images buf = bytestream.read(rows * cols * num_images) File "C:\Users\surak\AppData\Local\Programs\Python\Python35\lib\gzip.py", line 274, in read return self._buffer.read(size) TypeError: only integer scalar arrays can be converted to a scalar index
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Puedes modificar la función:

 def _read32(bytestream): dt = numpy.dtype(numpy.uint32).newbyteorder('>') return numpy.frombuffer(bytestream.read(4), dtype=dt)

nueva versión:

 def _read32(bytestream): dt = numpy.dtype(numpy.uint32).newbyteorder('>') return numpy.frombuffer(bytestream.read(4), dtype=dt)[0]

agregue [0] al final.

Esto parece ser un problema con la última versión de Numpy. Un cambio reciente hizo que fuera un error tratar una matriz de un solo elemento como un escalar a efectos de indexación.

over 4 years ago · Santiago Trujillo Report

0

El enlace de código que proporcionó utiliza un archivo separado llamado input_data.py para descargar datos de MNIST usando las siguientes dos líneas en board.py

 import input_data mnist = input_data.read_data_sets("/tmp/data/",one_hot=True)

Dado que los datos de MNIST se usan con tanta frecuencia con fines de demostración, Tensorflow proporciona una forma de descargarlos automáticamente.

Reemplace las dos líneas anteriores en board.py con las siguientes dos líneas y el error desaparecerá.

 from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('MNIST_data', one_hot=True)
over 4 years ago · Santiago Trujillo Report

0

Es probable que este archivo esté dañado:

 Z:/downloads/MNIST dataset\train-images-idx3-ubyte.gz

Analicemos el error que publicaste.

Esto indica que el código está trabajando actualmente con el archivo en cuestión:

 Extracting Z:/downloads/MNIST dataset\train-images-idx3-ubyte.gz

Traceback indica que sigue un seguimiento de pila:

 Traceback (most recent call last):

Esto indica que lee sus conjuntos de datos de 'Z:/downloads/MNIST dataset' :

 File "board.py", line 3, in <module> mnist = input_data.read_data_sets(r'Z:/downloads/MNIST dataset', one_hot=True)

Esto indica que el código está extrayendo imágenes:

 File "Z:\downloads\tensorflow_demo-master\tensorflow_demo-master\input_data.py", line 150, in read_data_sets train_images = extract_images(local_file)

Esto indica que se espera que el código lea rows * cols * num_images bytes:

 File "Z:\downloads\tensorflow_demo-master\tensorflow_demo-master\input_data.py", line 40, in extract_images buf = bytestream.read(rows * cols * num_images)

Esta es la línea que falla:

 File "C:\Users\surak\AppData\Local\Programs\Python\Python35\lib\gzip.py", line 274, in read return self._buffer.read(size) TypeError: only integer scalar arrays can be converted to a scalar index

Espero que el size sea el valor problemático y se calculó en la línea anterior de stacktrace.

Puedo ver al menos dos formas de proceder.

  1. Elimine el archivo ofensivo y vea si el problema desaparece. Esto le permitiría verificar que el archivo está corrupto de alguna manera.

  2. Use un depurador para ingresar al código y luego inspeccione los valores usados para calcular la variable infractora. Utilice el conocimiento adquirido para proceder desde allí.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!