gpt4 book ai didi

python - 机器学习输入和输出的大小

转载 作者:行者123 更新时间:2023-11-30 09:10:18 25 4
gpt4 key购买 nike

目前我正在基于 this website 使用 python 进行机器学习(第二部分是关于图像识别)。我想训练一个网络来识别 am 图像中的 4 个特定点,但我的问题是:

神经网络是通过简单地将矩阵相乘来创建的,计算给定输出和识别输出之间的增量并重新计算矩阵中的权重。现在假设我有一个 600x800 像素图像作为输入。如果我将其与图层矩阵相乘,我将无法获得 4x2 矩阵作为输出(每个点的 x,y)。

我的第二个问题是我应该有多少隐藏层来解决这个问题?层数越多越好,但需要更长的时间来计算吗?我们能否猜测我们需要多少隐藏层,或者我们应该测试一些值并使用其中最好的值?

我当前的神经网络代码:

from os.path import isfile
import numpy as np

class NeuralNetwork:

def __init__(self):
np.random.seed(1)
self.syn0 = 2 * np.random.random((480000,8)) - 1

@staticmethod
def relu(x, deriv=False):
if(deriv):
res = np.maximum(x, 0)
return np.minimum(res, 1)
return np.maximum(x, 0)

def train(self, imgIn, out):
l1 = NeuralNetwork.relu(np.dot(imgIn, self.syn0))

l1_error = out - l1

exp = NeuralNetwork.relu(l1,True)
l1_delta = l1_error * exp

self.syn0 += np.dot(imgIn.T,l1_delta)
return l1 #np.abs(out - l1)

def identify(self, img):
return NeuralNetwork.relu(np.dot(imgIn, self.syn0))

最佳答案

问题1.输入数据。

您必须序列化输入。例如,如果您有一张 600*800 像素的图像,则输入必须为 1*480000(行、列)。行表示数据的数量,列表示数据的维度。

问题 2. 分类。

如果你想对4种不同类型的类进行分类,你应该使用(1,4)向量进行输出。例如,有 4 个类别(“鱼”、“猫”、“老虎”、“汽车”)。那么向量(1,0,0,0)表示鱼。

问题3.完全连接的网络。

我认为此主页中的示例使用完全连接的网络。它使用整个图像进行一次分类。如果你想用图像的子集进行分类。您应该使用卷积神经网络或其他方法。我对此不太了解。

问题4.超参数

这取决于数据。您必须使用各种超参数进行测试。然后选择最佳的超参数。

关于python - 机器学习输入和输出的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40883179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com