Errno 13 в то время как начальная передача обучения 3 - PullRequest
0 голосов
/ 01 ноября 2018

Итак, я только что выучил python пару недель назад, и я новичок в tenorflow. Но мне нужно настроить начальную модель. Пытаясь следовать некоторым урокам, когда я наконец увидел какой-то свет, я получил эту ужасную ошибку, от которой не могу избавиться. Вот часть кода, в которой есть ошибка:

import matplotlib.pyplot as plt

train_dir=r'C:\tf_files'

image_paths=train_dir

images = [plt.imread(train_dir) for path in image_paths]

def plot_images(images, cls_true, cls_pred=None, smooth=True):
    assert len(images) == len(cls_true)

    # Create figure with sub-plots.
    fig, axes = plt.subplots(3, 3)

    # Adjust vertical spacing.
    if cls_pred is None:
        hspace = 0.3
    else:
        hspace = 0.6
    fig.subplots_adjust(hspace=hspace, wspace=0.3)

    # Interpolation type.
    if smooth:
        interpolation = 'spline16'
    else:
        interpolation = 'nearest'

    for i, ax in enumerate(axes.flat):
        # There may be less than 9 images, ensure it doesn't crash.
        if i < len(images):
            # Plot image.
            ax.imshow(images[i],
                      interpolation=interpolation)

            # Name of the true class.
            cls_true_name = class_names[cls_true[i]]

            # Show true and predicted classes.
            if cls_pred is None:
                xlabel = "True: {0}".format(cls_true_name)
            else:
                # Name of the predicted class.
                cls_pred_name = class_names[cls_pred[i]]

                xlabel = "True: {0}\nPred: {1}".format(cls_true_name, cls_pred_name)

            # Show the classes as the label on the x-axis.
            ax.set_xlabel(xlabel)

        # Remove ticks from the plot.
        ax.set_xticks([])
        ax.set_yticks([])

    # Ensure the plot is shown correctly with multiple plots
    # in a single Notebook cell.
    plt.show()

и это то, что терминал плюет:

Traceback (most recent call last):
  File "C:/Users/Shangai/PycharmProjects/PSai/Testing.py", line 14, in <module>
    images = [plt.imread(train_dir) for path in image_paths]
  File "C:/Users/Shangai/PycharmProjects/PSai/Testing.py", line 14, in <listcomp>
    images = [plt.imread(train_dir) for path in image_paths]
  File "C:\Users\Shangai\AppData\Local\conda\conda\envs\PSAI\lib\site-packages\matplotlib\pyplot.py", line 2152, in imread
    return matplotlib.image.imread(fname, format)
  File "C:\Users\Shangai\AppData\Local\conda\conda\envs\PSAI\lib\site-packages\matplotlib\image.py", line 1359, in imread
    with Image.open(fname) as image:
  File "C:\Users\Shangai\AppData\Local\conda\conda\envs\PSAI\lib\site-packages\PIL\Image.py", line 2609, in open
    fp = builtins.open(filename, "rb")
PermissionError: [Errno 13] Permission denied: 'C:\\tf_files'

Мне в основном нужен способ сделать изображение массивом, но я не могу понять это. Любая помощь будет оценена, большое спасибо. Мир!

- я использую пичарм в среде анаконды -

1 Ответ

0 голосов
/ 01 ноября 2018

РЕДАКТИРОВАТЬ: Вы позвонили imread для каталога, который на самом деле не изображение. Ваши изображения в C:\tf_files? Если это так, используйте os.listdir(), чтобы получить ВСЕ (включая не изображения) файлы в каталоге. Итак, ваш код (должен быть) так:

train_dir=r'C:\tf_files' # The directory contains images    
image_paths=os.listdir(train_dir)  # Get the image file only, you can check by checking its extension   
images = [plt.imread(train_dir) for path in image_paths]  

Есть еще одна вещь: возникает ошибка Permission denied, которая меня смущает. Если мой ответ поможет вам решить проблему, что означает, что ошибка не связана с правами собственности, поэтому я понятия не имею, почему это Permission denied происходит.


Это проблема PermissionError: [Errno 13] Permission denied: 'C:\\tf_files'
У вас есть доступ к каталогу C:\\tf_files? Попробуйте получить право собственности или просто отредактируйте путь к тому месту, где у вас есть доступ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...