我想把图像数据放在神经网络中,但是我在使用图像数据类型时遇到了问题。 我用Pytorch读取我的数据
import torch
import torchvision
import numpy as np
from settings import Settings
class Data_Read:
@staticmethod
def getTrain():
train_dataset = torchvision.datasets.ImageFolder(
root=Settings.pathTrainImagesCopy,
transform=torchvision.transforms.ToTensor()
)
train_loader = torch.utils.data.DataLoader(
train_dataset,
batch_size=64,
num_workers=0,
shuffle=True
)
return train_loader
@staticmethod
def getTest():
test_dataset = torchvision.datasets.ImageFolder(
root=Settings.pathTestImagesCopy,
transform=torchvision.transforms.ToTensor()
)
test_loader = torch.utils.data.DataLoader(
test_dataset,
batch_size=64,
num_workers=0,
shuffle=True
)
return test_loader
下面的代码创建一个一维图像列
class Imagez:
@staticmethod
def Get(arr):
imageData = []
for item in arr:
filePath = item
img = Image.open(filePath).convert('LA')
imageData.append(img)
return imageData
这些方法从主类调用如下
trainData = Data_Read.getTrain()
testData = Data_Read.getTest()
arrTrain = np.array(trainData.dataset.imgs)[:,0]
labelTrain = trainData.dataset.targets
arrTest = np.array(testData.dataset.imgs)[:,0]
labelTest = testData.dataset.targets
X_Train = Imagez.Get(arrTest)
我发现每当我试图在X\u Train中使用Images数据类型I时,就会遇到错误消息的麻烦。 例如:
mlp = MLPClassifier(hidden_layer_sizes=(10,10,10), max_iter=1000 )
mlp.fit(X_Train, labelTrain)
会给我这个错误信息
Traceback (most recent call last): File "c:\Users\hijik.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\ptvsd_launcher.py", line 43, in main(ptvsdArgs) File "c:\Users\hijik.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\lib\python\old_ptvsd\ptvsd__main__.py", line 432, in main run() File "c:\Users\hijik.vscode\extensions\ms-python.python-2019.11.50794\pythonFiles\lib\python\old_ptvsd\ptvsd__main__.py", line 316, in run_file runpy.run_path(target, run_name='main') File "C:\Users\hijik\AppData\Local\Continuum\anaconda3\lib\runpy.py", line 263, in run_path pkg_name=pkg_name, script_name=fname) File "C:\Users\hijik\AppData\Local\Continuum\anaconda3\lib\runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "C:\Users\hijik\AppData\Local\Continuum\anaconda3\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "d:\702\702-Coursework-Task-5\src\Main.py", line 74, in mlp.fit(X_Train, Y_TrainLabels) File "C:\Users\hijik\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\neural_network\multilayer_perceptron.py", line 981, in fit
return self._fit(X, y, incremental=(self.warm_start and File "C:\Users\hijik\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\neural_network\multilayer_perceptron.py", line 323, in _fit X, y = self._validate_input(X, y, incremental) File "C:\Users\hijik\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\neural_network\multilayer_perceptron.py", line 919, in _validate_input multi_output=True) File "C:\Users\hijik\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\utils\validation.py", line 719, in check_X_y estimator=estimator) File "C:\Users\hijik\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\utils\validation.py", line 496, in check_array array = np.asarray(array, dtype=dtype, order=order) File "C:\Users\hijik\AppData\Local\Continuum\anaconda3\lib\site-packages\numpy\core\numeric.py", line 538, in asarray return array(a, dtype, copy=False, order=order) TypeError: int() argument must be a string, a bytes-like object or a number, not 'Image'
我想我需要把我的图像转换成另一种数据类型。你有什么建议?你知道吗
编辑-这是最小可再现误差
X_Train = []
filePath = '..\\images\\Train\\anger\\S010_004_00000014.png'
img = Image.open(filePath).convert('LA')
X_Train.append(img)
Y_TrainLabels = ["0"]
mlp = MLPClassifier(hidden_layer_sizes=(10,10,10), max_iter=1000 )
mlp.fit(X_Train, Y_TrainLabels)
首先,您的
Imagez
类返回PIL
图像的列表,这些图像不能用于训练,因为您需要数字表示。你知道吗简单的解决方法是:
查看^{} 文档以及您是否真的需要它。你知道吗
第二,如果你想要
sklearn
,而它是MLPClassifier
,你必须把这些数组转换成np.array
。你知道吗对于每一个,您可以调用pytorch张量上的
.numpy()
,将其转换,然后将其堆叠成一个数组。你知道吗此外,您的输入和输出似乎是图像,您要么将这些图像
flatten
转换为完全连接层的单个向量,要么使用卷积神经网络和PyTorch,例如下面的网络:你可以在PyTorch网站上找到一些基本的教程,60 Minute Blitz对你来说似乎是一个很好的起点,因为这里有很多问题需要解决。你知道吗
相关问题 更多 >
编程相关推荐