小编Cyb*_*ent的帖子

机器学习:使用卷积NN将图像分类为3类(狗或猫或两者)

我很感激在思考这个过程中提供了一些帮助.我有一个分类器,可以成功地将图像分类成狗或猫,准确性很高.我有一个很好的数据集来训练分类器.到目前为止没问题.

我有大约20,000只狗和20,000只猫图像.

然而,当我试图展示其他图像,如汽车或建筑物或没有狗或猫的老虎时,我希望分类器的输出为"Niether".现在很明显,分类器试图将所有东西分类为狗或猫,这是不正确的.

问题1:

我怎样才能做到这一点?我是否需要拥有一组不包含狗或猫的图像,并在这些附加图像上训练分类器以将其他所有内容识别为"两者"?

在近似的高水平,我需要多少图片的非狗/猫类才能获得良好的准确度?自从非狗/猫图像领域如此庞大以来,大约会有50,000张图像吗?还是我需要更多图片?

问题2:

我可以使用Imagenet训练的VGG16 Keras模型作为初始层,而不是使用我自己的图像数据训练我自己的分类器,并将DOG/CAT/Neither分类器添加到顶部作为完全连接层?

请参阅此示例以加载预先处理的imagenet模型

非常感谢你的帮助.

image classification machine-learning multilabel-classification keras

6
推荐指数
1
解决办法
1119
查看次数

帮助:从文本中提取数据元组...正则表达式或机器学习?

我非常感谢您对以下问题的最佳方法的看法.我正在使用汽车分类列表示例,其性质类似于给出一个想法.

问题:从给定文本中提取数据元组.

以下是数据的一些特征.

  1. 文本中的词汇(单词)仅限于特定领域.让我们假设最多100-200个单词.

  2. 需要解析的文本是标题,如下面显示的汽车广告数据.所以每条记录对应一个元组(行).

  3. 在某些情况下,某些属性可能会丢失.因此,例如,在原始数据行#5中,缺少年份.

  4. 有些词汇(bigrams).喜欢"低里程".

  5. 可用的历史数据= 10,000条记录

  6. 传入的新数据量=每周1000-1500条记录

预期输出应采用(年,制,模型,特征)的形式.所以输出应该是这样的

1 - >(2009,Ford,Fusion,SE)
2 - >(1997,Ford,Taurus,Wagon)
3 - >(2000,Mitsubishi,Mirage,DE)
4 - >(2007,Ford,Expedition,EL Limited)
5 - >(,本田雅阁,EX)
....
....

原始标题数据:


1 - > 2009福特Fusion SE - 7000美元
2 - > 1997福特金牛座旅行车 - 800美元(圣东方)
3 - > '00三菱海市蜃楼DE - 2499美元(saratoga)图片
4 - > 2007福特Expedition EL限量版 - $ 7800(x)
5 - > Honda Accord ex low miles - $ 2800(dublin/pleasanton/livermore)pic
6 - > 2004 HONDA ODASSEY LX 68K MILES - $ 10800(danville/san …

regex nlp classification machine-learning data-extraction

5
推荐指数
1
解决办法
2694
查看次数

带有 TypeError 的 Python struct.unpack 错误:需要类似字节的对象,而不是“str”

有人可以帮助解决以下代码行和错误吗?我不熟悉python值转换。

产生错误的具体行是:

value = struct.unpack("<h",chr(b)+chr(a))[0]
Run Code Online (Sandbox Code Playgroud)

类型错误:需要类似字节的对象,而不是“str”

代码片段是:

                    if packet_code ==0x80: # raw value
                        row_length = yield
                        a = yield
                        b = yield
                        value = struct.unpack("<h",chr(b)+chr(a))[0]
Run Code Online (Sandbox Code Playgroud)

输入数据为:

b'\x04\x80\x02\x00\xb2\xcb\xaa\xaa\x04\x80\x02\x00p\r\xaa\xaa\x04\x80\x02\x00] \xaa\xaa\x04\x80\ x02\x00@=\xaa\xaa\x04\x80\x02\x007F\xaa\xaa\x04\x80\x02\x00\!\xaa\xaa\x04\x80\x02\x00=@\xaa\xaa\ x04\x80\x02\x00=@\xaa\xaa\x04\x80\x02\x00i\x14\xaa\xaa\x04\x80\x02\x00] \xaa\xaa\x04\x80\x02\x00p\r \xaa\xaa\x04\x80\x02\x00\x80\xfd\xaa\xaa

我正在使用 python 3.5。此代码似乎适用于旧版本。

这是类似解析器代码的链接,它可能与以前版本的 Python 一起使用: 解析器代码链接

这是有关如何从设备 RAW 波形值(16 位)发送数据的说明的链接

该数据值由两个字节组成,代表单个原始波形样本。它的值是一个有符号的 16 位整数,范围从 -32768 到 32767。Value 的第一个字节表示二进制补码值的高位,而第二个字节表示低位。要重建完整的原始波形值,只需将第一个字节左移 8 位,然后与第二个字节按位或:

short raw = (Value[0]<<8) | Value[2];
Run Code Online (Sandbox Code Playgroud)

其中 Value[0] 是高位字节,Value 1是低位字节。

在位操作不方便的系统或语言中,可以用以下算术运算代替:

raw = Value[0]*256 + Value[1];
if( raw >= 32768 ) raw = raw - 65536; …
Run Code Online (Sandbox Code Playgroud)

python parsing struct python-3.x

2
推荐指数
1
解决办法
8512
查看次数