我要更改什么以调整从灰度到 RGB 的图像?
What do I change to adjust for the image going from grayscale to RGB?
我似乎一直搞砸了,迷失了如何重塑数据以适应模型。我认为输入和输出数据的形状必须匹配,但我一直不知道如何去做。
我认为我的主要问题是灰度图像和 RGB 图像的存储方式不同。 [1] 与 [255,255,255]
所以如果:
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2RGB)
已更改为:
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2GRAY)
一切正常。
有问题的代码:
# Capture Data (CUT SHORT)
WIDTH = 160
HEIGHT = 120
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2RGB)
screen = cv2.resize(screen, (WIDTH, HEIGHT))
dataset = []
output = [0, 0, 0, 0]
dataset.append([screen, output])
np.save("training.npy", dataset)
# Build Model
https://github.com/tflearn/tflearn/blob/master/examples/images/alexnet.py
# Changed to match output.
network = fully_connected(network, 4, activation='softmax')
# Train Data
WIDTH = 160
HEIGHT = 120
LR = 1e-3
EPOCHS = 5
MODEL_NAME = "HELP"
model = alexnet(WIDTH, HEIGHT, LR)
for i in range(EPOCHS):
train_data = np.load("training.npy".format(i))
train = train_data[:-100]
test = train_data[-100:]
X = np.array([i[0] for i in train]).reshape(-1,WIDTH,HEIGHT,1)
Y = [i[1] for i in train]
test_x = np.array([i[0] for i in test]).reshape(-1,WIDTH,HEIGHT,1)
test_y = [i[1] for i in test]
model.fit({'input': X}, {'targets': Y}, n_epoch=1, validation_set=({'input': test_x}, {'targets': test_y}),
snapshot_step=500, show_metric=True, run_id=MODEL_NAME)
model.save(MODEL_NAME)
错误:
线程 Thread-3 中的异常:
追溯(最近一次通话):
文件 "C:\Users\TF\AppData\Local\Programs\Python\Python35\lib\threading.py",第 914 行,在 _bootstrap_inner 中
self.run()
文件 "C:\Users\TF\AppData\Local\Programs\Python\Python35\lib\threading.py",第 862 行,在 运行 中
self._target(*self._args, **self._kwargs)
文件 "C:\Users\TF\AppData\Local\Programs\Python\Python35\lib\site-packages\tflearn\data_flow.py",第 187 行,在 fill_feed_dict_queue 中
数据 = self.retrieve_data(batch_ids)
文件 "C:\Users\TF\AppData\Local\Programs\Python\Python35\lib\site-packages\tflearn\data_flow.py",第 222 行,在 retrieve_data 中
utils.slice_array(self.feed_dict[键], batch_ids)
文件 "C:\Users\TF\AppData\Local\Programs\Python\Python35\lib\site-packages\tflearn\utils.py",第 187 行,在 slice_array 中
returnX[开始]
IndexError:索引 2936 超出轴 0 的范围,大小为 1900
博士。罗伯特·基希格斯纳:
您的输入数据集中有三个通道。
np.array([i[0] for i in test]).reshape(-1,WIDTH,HEIGHT,3)
在 alexnet 中:
network = input_data(shape=[None, width, height, 3], name='input')
我似乎一直搞砸了,迷失了如何重塑数据以适应模型。我认为输入和输出数据的形状必须匹配,但我一直不知道如何去做。
我认为我的主要问题是灰度图像和 RGB 图像的存储方式不同。 [1] 与 [255,255,255]
所以如果:
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2RGB)
已更改为:
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2GRAY)
一切正常。
有问题的代码:
# Capture Data (CUT SHORT)
WIDTH = 160
HEIGHT = 120
screen = cv2.cvtColor(screen, cv2.COLOR_BGR2RGB)
screen = cv2.resize(screen, (WIDTH, HEIGHT))
dataset = []
output = [0, 0, 0, 0]
dataset.append([screen, output])
np.save("training.npy", dataset)
# Build Model
https://github.com/tflearn/tflearn/blob/master/examples/images/alexnet.py
# Changed to match output.
network = fully_connected(network, 4, activation='softmax')
# Train Data
WIDTH = 160
HEIGHT = 120
LR = 1e-3
EPOCHS = 5
MODEL_NAME = "HELP"
model = alexnet(WIDTH, HEIGHT, LR)
for i in range(EPOCHS):
train_data = np.load("training.npy".format(i))
train = train_data[:-100]
test = train_data[-100:]
X = np.array([i[0] for i in train]).reshape(-1,WIDTH,HEIGHT,1)
Y = [i[1] for i in train]
test_x = np.array([i[0] for i in test]).reshape(-1,WIDTH,HEIGHT,1)
test_y = [i[1] for i in test]
model.fit({'input': X}, {'targets': Y}, n_epoch=1, validation_set=({'input': test_x}, {'targets': test_y}),
snapshot_step=500, show_metric=True, run_id=MODEL_NAME)
model.save(MODEL_NAME)
错误: 线程 Thread-3 中的异常: 追溯(最近一次通话): 文件 "C:\Users\TF\AppData\Local\Programs\Python\Python35\lib\threading.py",第 914 行,在 _bootstrap_inner 中 self.run() 文件 "C:\Users\TF\AppData\Local\Programs\Python\Python35\lib\threading.py",第 862 行,在 运行 中 self._target(*self._args, **self._kwargs) 文件 "C:\Users\TF\AppData\Local\Programs\Python\Python35\lib\site-packages\tflearn\data_flow.py",第 187 行,在 fill_feed_dict_queue 中 数据 = self.retrieve_data(batch_ids) 文件 "C:\Users\TF\AppData\Local\Programs\Python\Python35\lib\site-packages\tflearn\data_flow.py",第 222 行,在 retrieve_data 中 utils.slice_array(self.feed_dict[键], batch_ids) 文件 "C:\Users\TF\AppData\Local\Programs\Python\Python35\lib\site-packages\tflearn\utils.py",第 187 行,在 slice_array 中 returnX[开始]
IndexError:索引 2936 超出轴 0 的范围,大小为 1900
博士。罗伯特·基希格斯纳: 您的输入数据集中有三个通道。
np.array([i[0] for i in test]).reshape(-1,WIDTH,HEIGHT,3)
在 alexnet 中:
network = input_data(shape=[None, width, height, 3], name='input')