ImportError: невозможно импортировать имя '_validate_lengths'

Я начал изучать Tensorflow. Я использую Pycharm, и моя среда — Ubuntu 16.04. Я следую руководство. Я перекрестно проверяю число. Это актуально. Я не знаю причину этой ошибки.

from numpy.lib.arraypad import _validate_lengths

ImportError: cannot import name '_validate_lengths'

Нужна подсказка, чтобы решить эту ошибку. Спасибо.

import tensorflow as tf
from skimage import transform
from skimage import data
import matplotlib.pyplot as plt
import os
import numpy as np
from skimage.color import rgb2gray
import random

#listdir: This method returns a list containing the names of the entries in the directory given by path.
# Return True if path is an existing directory

def load_data(data_dir):
    # Get all subdirectories of data_dir. Each represents a label.
    directories = [d for d in os.listdir(data_dir)
                   if os.path.isdir(os.path.join(data_dir, d))]
    # Loop through the label directories and collect the data in
    # two lists, labels and images.
    labels = []
    images = []
    for d in directories:
        label_dir = os.path.join(data_dir, d)
        file_names = [os.path.join(label_dir, f)
                      for f in os.listdir(label_dir)
                      if f.endswith(".ppm")]
        for f in file_names:
            images.append(data.imread(f))
            labels.append(int(d))
    return images, labels


ROOT_PATH = "/home/tahir/PhD Study/Traffic Signs Using Tensorflow/"
train_data_dir = os.path.join(ROOT_PATH, "TrafficSigns/Training")
test_data_dir = os.path.join(ROOT_PATH, "TrafficSigns/Testing")

images, labels = load_data(train_data_dir)

# Print the `images` dimensions
print(images.ndim)

# Print the number of `images`'s elements
print(images.size)

# Print the first instance of `images`
images[0]

Взгляните на github.com/scikit-image/scikit-image/issues/3586

cdarke 17.01.2019 18:29
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
73
1
48 603
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

Я обновил свой пакет skimage.

pip install --upgrade scikit-image

И проблема была решена. Это проблема версии Skimage, которая решена в 0.14.2. Плюс, эта версия достаточно стабильна.

    Installing collected packages: dask, scikit-image
  Found existing installation: dask 0.19.1
    Uninstalling dask-0.19.1:
      Successfully uninstalled dask-0.19.1
  Found existing installation: scikit-image 0.13.0
    Uninstalling scikit-image-0.13.0:
      Successfully uninstalled scikit-image-0.13.0
Successfully installed dask-1.0.0 scikit-image-0.14.2

scikit-image 0.14.2 работал с numpy 1.16.3. Сначала я установил numpy, а затем установил образ scikit.

теперь предыдущая ошибка исчезла, но появилась новая ошибка: Получил эту ошибку ImportError: невозможно импортировать имя 'img_as_float32'. Использование версии Numpy: 1.17.0 и skimage: 0.13.0

Yogesh 24.08.2019 09:03

У меня была такая же ошибка, я сделал следующие шаги:

удалить scikit-образ

pip uninstall scikit-image

или

conda uninstall scikit-image

а потом

pip install scikit-image

или

conda install -c conda-forge scikit-image

После выполнения вышеуказанных шагов возникает эта ошибка: ImportError: невозможно импортировать имя «img_as_float32». Использование версии Numpy: 1.17.0 и skimage: 0.13.0, Python 3

Yogesh 24.08.2019 09:03

Если вы работаете в блокноте Jupyter, не забудьте добавить аргумент --y, например !conda uninstall scikit-image --y или !conda install -c conda-forge scikit-image --y

Ivan 10.04.2020 16:54

pip install scikit-image==0.14.2 && pip install numpy==1.15

Ссылка: Здесь

Кажется, у меня тоже была такая же проблема из-за того, что две версии были установлены одновременно.

Я решил это, удалив scikit-image несколько раз, пока ничего не осталось.

pip uninstall scikit-image

Затем переустановите:

pip uninstall scikit-image

У меня это сработало.

Для меня волшебной зависимостью было:

pip install scikit-image==0.13.1
pip install numpy==1.15

Для питона 3.5 и питона 3.6

обновить scikit-image до последней версии, ИЛИ понизить NumPy до 1.15.

 pip install -U scikit-image

или

 pip install numpy==1.15

если пункт не последний. Вам может понадобиться это:

python -m pip install --upgrade pip

обратитесь к Получение ImportError: невозможно импортировать имя '_validate_lengths' #3906 .

Другие вопросы по теме