Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列表索引超出范围。。可以在google colab上工作,但不能在本地计算机上工作?_Python_List_Tensorflow_Indexing_Range - Fatal编程技术网

Python 列表索引超出范围。。可以在google colab上工作,但不能在本地计算机上工作?

Python 列表索引超出范围。。可以在google colab上工作,但不能在本地计算机上工作?,python,list,tensorflow,indexing,range,Python,List,Tensorflow,Indexing,Range,我正在尝试在本地计算机上重新创建此项目。它的设计是在Google Colab上运行的,我在那里重新创建了它,它运行得很好。我现在想在我的本地机器上运行它,所以我安装了所有需要的软件包,anaconda,Juypter笔记本等等 当我谈到处理图像的部分时: # Loops through imagepaths to load images and labels into arrays for path in imagepaths: img = cv2.imread(path) # Reads

我正在尝试在本地计算机上重新创建此项目。它的设计是在Google Colab上运行的,我在那里重新创建了它,它运行得很好。我现在想在我的本地机器上运行它,所以我安装了所有需要的软件包,anaconda,Juypter笔记本等等

当我谈到处理图像的部分时:

# Loops through imagepaths to load images and labels into arrays
for path in imagepaths:
  img = cv2.imread(path) # Reads image and returns np.array
  img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Converts into the corret colorspace (GRAY)
  img = cv2.resize(img, (320, 120)) # Reduce image size so training can be faster
  X.append(img)

  #Processing label in image path   
  category = path.split("/")[3]   
  label = int(category.split("_")[0][1])   
  y.append(label) 
它抛出以下错误:

IndexError: list index out of range 
代码大部分没有更改,数据集是相同的。唯一的区别是我在本地运行,而不是google colab。我在网上搜索,有人说do len(路径)来验证(在我的例子中)它是否上升到[3],它确实如此(大小33)

此处的代码已更改:

我没有使用这一行,因为我没有使用google colab:

from google.colab import files
本部分代码中使用了“文件”:

# We need to get all the paths for the images to later load them
imagepaths = []

# Go through all the files and subdirectories inside a folder and save path to images inside list
for root, dirs, files in os.walk(".", topdown=False): 
  for name in files:
    path = os.path.join(root, name)
    if path.endswith("png"): # We want only the images
      imagepaths.append(path)

print(len(imagepaths)) # If > 0, then a PNG image was loaded
在我的本地机器上,我从google.colab…行中删除了
,并正常运行其他所有内容。上面的代码段中使用了关键字文件,但是在运行它时没有抛出任何错误<代码>**注意Jupyter上的len(路径)显示为33,Google上的len(路径)显示为16..?**


有人知道这是什么问题吗?我不认为这是因为删除了那一行代码。如果是,您建议我如何修复它?

您的本地计算机运行在
Windows
上,而
colab
运行在
linux
上,并且两者的路径分隔符不同。 现在你需要替换

category = path.split("/")[3]


您的本地计算机运行在
Windows
上,而
colab
运行在
linux
上,两者的路径分隔符不同。 现在你需要替换

category = path.split("/")[3]


你的代码应该可以工作。

听起来问题出在你的一次拆分中(你忘了告诉我们哪一次是给你带来问题的)。在google colab和您的本地机器上,
path
的值是多少?您好@SergioR,问题在于Jupyter上的拆分。这正是错误指向的地方。在google上执行len(path)时,我得到16,但在Jupyter上我得到33..?你能为google colab和你的本地机器提供
path
的输出吗?您可以使用
print(imagepaths[0])
进行此操作。@user\u 3pij,
print(imagepaths[0])
的结果如下:
/leappestrecog/leappestrecog/00/01\u palm/frame\u 00\u 01\u 0001.png
在我的本地机器上,它的“\\00\\01\u palm\\frame\u 00\u 01\u 0001.png”听起来像是在您的一次拆分中出现了问题(你忘了告诉我们哪个是给你带来问题的)。google colab和你的本地机器上的
path
值多少?嗨@SergioR,问题是Jupyter上的拆分。这正是错误所在。执行len(path)时在google上我得到16,但在Jupyter上我得到33..?你能为google colab和你的本地机器提供
path
的输出吗?你可以使用
print(ImagePath[0])
来实现这一点。@user_3pij,
print(ImagePath[0])
结果如下:
/leappestrecog/leappestrecog/00/01_palm/frame_00_01_0001.png
在我的本地机器上,它的“.\\00\\01_palm\\frame_00_01_0001.png”谢谢你!就是它,我没意识到。干杯!谢谢!就是它,我没意识到。干杯!