精华内容
下载资源
问答
  • 2019-02-28 12:04:33
    	在指定网页中,某个关键词出现的次数除以该网页长度称为该关键词在此网页中的词频。对新闻类网页,存在一组的关键词。因此,每个新闻页都存在一组词频,称为该新闻网页的特征向量。
    	设两个新闻网页的特征向量分别为:甲(a1 ,a2,.... ak)、乙(b1 ,b2,.... bk),则计算这个网页的相似度时需先计算它们的内积S=a1b1+a2b2+.....+akbk。一般情况下,新闻网页特征向量的维数时巨大的,但每个特征向量中非零元素却并不多。为了节省存储空间和计算时间,我们依次用特征向量中非零元素的序号及相应词频值来简化特征向量。为此,
    

    我们用(NA(i),A(i)| i=1,2,…,m)和(NB(j),B(j)| j=1,2,…,n)来简化两个网页的特征向量。其中:NA(i)从前到后描述了特征向量甲中非零元素A(i)的序号(NA(1)<NA(2)<…),NB(j))从前到后描述了特征向量乙中非零元素B(j)的序号(NB(1)<NB(2)<…)。
    下面的流程图描述了计算这两个特征向量内积S的过程。(题来自软考2014上)
    在这里插入图片描述
    (1)处,由题目信息和最终输出,可以得知,流程图得S代表特征向量内积和,所以S 的初值为0
    (2)处,由S=a1b1+a2b2+…+akbk 得,S=S+A(i)*B(j),所以填S+A(i)*B(j)
    (3)处,分析流程图得要正常计算内积必须保证i=j,当NA[i]<NB[J]时,j不变,i加1。此时正常来说应该用新的i值接着计算内积,但是特征向量中非零元素个数时有限的,无论如何i的值不能超出最大值m,所以此处应该判断是否越界,填入i>m?
    同理可得(4)处应填,j>n?
    (5)处,分析流程图得知,流程图中间部分是用来正常计算内积的,从(2)下去,自增后,应当判断是否计算完成,作为结束条件。计算结束意味着其中有一个简化向量结束,即NA(i)或NB(j)结束,此处应填i>m or j>n
    —————————————————————————————————————————————————————
    附:(答案中的一些描述)
    世界上有大量的新闻网页,门户网站需要将其自动进行分类,并传送给搜索的用户。为了分类,需要建立相似度衡量方法。流行的算法是,先按统一的关键词组计算各个关键词的词频,形成网页的特征向量,这样,两个网页特征向量的夹角余弦(内积/两个向量模具的乘积),就可以衡量两个网页的相似度。因此,计算两个网页特征向量的内积就是分类计算中的关键。
    对于存在大量零元素的稀疏向量来说,题中的简化表示方法很有效。
    (1)0
    (2)S+A(i)B(j)
    (3) i>m 或i=m+1或等价表示
    (4)j>n或j=n+1或等价表示
    (5)i>m or i=m+1 或 i=m+1 or j=n+1

    更多相关内容
  • 赫思曼交换机产品分类描述宣贯.pdf
  • 跨境电子商务 产品分类、标题及详细描述 产品标题.pptx
  • 跨境电子商务 产品分类、标题及详细描述 产品详细描述1.pptx
  • USB描述符的分类与介绍

    千次阅读 2020-02-22 21:00:13
    STM32 USB设备描述符、配置描述符、端点描述符含义 copyfromhttps://www.cnblogs.com/huanjun/p/9605872.html 查了一整天的资料,自己把不懂的全部试了一遍 一下是程序以及注释 /* USB设备描述符*/ const uint8...

    USB描述符的分类与介绍

    USB的符述符分为几类?有人可能会答:设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符等。但这里说的不是这样的。上面的几类描述符属于USB标准描述符。另外还有HID描述符和Hub描述符。所以分类是这样的:
    1. 标准描述符
                1) 设备描述符
                 2) 配置描述符
                 3) 字符串描述符
                 4) 接口描述符
                 5) 端点描述符
                 6) 设备限定描述符
                 7) 其他速率配置描述符
    2. HID描述符
    3. Hub描述符

    1 标准描述符

    标准描述符是指一组设备描述符,包括设备描述符、配置描述符、字符串描述符、接口描述符、端点描述符、设备限定描述符和其他速率配置描述符。这七种 描述符具有类似的格式,比如说它们的第一个字段都是bLength,第二个字段都是bDescriptorType。七种描述符在使用时以 bDescriptorType字段来区分。描述符类型与对应的bDescriptorType字段值对应关系为:

     1.1 设备描述符

    设备描述符描述的是设备的整体信息,与设备本身一一对应,一个设备只能有一个设备描述符。在主机对USB设备枚举的过程中,首先要做的就是获取设备描述符,以对设备有一个整体的了解。
    设备描述符由14个字段组成,总长度18字节:

     这些字段都有一个小写字母表示的前缀,它们所表示的意思如下:
     b 表一个字节,=8bits;
     w 表一个字,=16bits;
     bm 表按位寻址;
     bcd 用BCD码表示;
     i 表索引值
     id 表标识码
    各字段含义:
     bLength: 表示描述符的长度,对于设备描述符来说,其值为18,即0x12。
     bDescriptorType: 描述符类型,对应表1中的值,设备描述符为0x01。
     bcdUSB:该设备遵循的USB版本号,以BCD码表示,USB1.1为0x0101,USB2.0为0x0200。
     bDeviceClass:该设备所属的标准设备类,USB协议中对常见的设备进行了分类。该字段值为0x01~0xFE时,表示是USB协议中已定义的设备类,常用的HID设备类编号为0x03,其它设备类编号参:http://www.usb.org/developers/defined_class
     bDeviceProtocol:用于表示USB设备类所采用的设备类协议,其值和bDeviceClass和bDeviceSubClass有关。当此 字段为0时,表示不使用任何设备类协议。如果该USB设备属于某个设备类和设备子类,则应该继续指明所采用的设备类协议。当该字段为0xFF时,表明设备 类协议由供应商自定义。
     bMaxPacketSize0:用于表示在USB设备中,端点0所支持最大数据包的长度,它以字节为单位。对于低速USB设 备,bMaxPacketSize0为8;对于全速USB设备,bMaxPacketSize0为8、16、32、64;对于高速USB设 备,bMaxPacketSize0为64。
     IdVendor:用于表示USB设备供应商的ID。USB组织中规定每种产品都必须包含一个供应商ID,这样可以使主机加载合适的驱动程序。
     idProduct:用于表示USB产品的ID,由设备供应商提供。idProduct用于表示特定的USB设备,在USB设备上电的时候可以帮助USB主机选择合适的驱动程序。
     bcdDevice:用于表示USB设备的版本号,它以BCD码的形式表示。一般来说bcdDevcie由设备供应商指定,在USB设备上电的时候可以帮助USB主机选择合适的驱动程序。
     iManufacturer:用于表示供应商字符串描述符的索引值。具体字符串的内容在后面字符串描述符中定义。如果没有供应商字符串,可以置0。

    这里应该还有一个 iProduct 
     iSerialNumber:用于表示设备序列号字符串描述符的索引值,如果没有,可以置为0。

     bNumConfigurations:用于表示该USB设备所支持的配置数。

    by louis: 

    结合stm32 的usb 设备描述符:

    /* USB Standard Device Descriptor */
    const u8 Joystick_DeviceDescriptor[JOYSTICK_SIZ_DEVICE_DESC] =
      {
        0x12,                       /*bLength */
        USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType*/
        0x00,                       /*bcdUSB */
        0x02,
        0x00,                       /*bDeviceClass*/
        0x00,                       /*bDeviceSubClass*/
        0x00,                       /*bDeviceProtocol*/
        0x40,                       /*bMaxPacketSize40*/
        0x11,                       /*idVendor (0x1234)*/
        0x11,
        0x11,                       /*idProduct = 0x4321*/
        0x11,
        0x00,                       /*bcdDevice rel. 2.00*/
        0x02,
        1,                          /*Index of string descriptor describing
                                                  manufacturer */
        2,                          /*Index of string descriptor describing
                                                 product*/
        3,                          /*Index of string descriptor describing the
                                                 device serial number */
        0x01                        /*bNumConfigurations*/
      }
      ; /* Joystick_DeviceDescriptor */

    bLength : 描述符大小.固定为0x12.
    bDescriptorType : 设备描述符类型.固定为0x01.
    bcdUSB : USB 规范发布号.表示了本设备能适用于那种协议,如2.0=0200,1.1=0110等.

    bDeviceClass : 类型代码(由USB指定)。当它的值是0时,表示所有接口在配置描述符里,并且所有接口是独立的。当它的值是1到FEH时,表示不同的接口关联的。当它的值是FFH时,它是厂商自己定义的.

    bDeviceSubClass : 子类型代码(由USB分配).如果bDeviceClass值是0,一定要设置为0.其它情况就跟据USB-IF组织定义的编码. (louis:这两项如果是在复合设备下,就会和一般的单一设备不太一样了)

    bDeviceProtocol : 协议代码(由USB分配).如果使用USB-IF组织定义的协议,就需要设置这里的值,否则直接设置为0。如果厂商自己定义的可以设置为FFH.

    bMaxPacketSize0 : 端点0最大分组大小(只有8,16,32,64有效).

    idVendor : 供应商ID(由USB分配).

    idProduct : 产品ID(由厂商分配).由供应商ID和产品ID,就可以让操作系统加载不同的驱动程序.

    bcdDevice : 设备出产编码.由厂家自行设置.

    iManufacturer : 厂商描述符字符串索引.索引到对应的字符串描述符. 为0则表示没有.

    iProduct : :产品描述符字符串索引.同上.
    iSerialNumber : 设备序列号字符串索引.同上.

    bNumConfigurations : 可能的配置数.指配置字符串的个数

     

    iManufacturer  之前的还算好理解。 

    iManufacturer ,iProduct,和 iSerialNumber ,这里的值是 1,2,3 是什么含义?

    看看下面的定义,这个是 字符串描述符。

    他们在 
    ONE_DESCRIPTOR String_Descriptor[4] =
      {
        {(u8*)Joystick_StringLangID, JOYSTICK_SIZ_STRING_LANGID},
        {(u8*)Joystick_StringVendor, JOYSTICK_SIZ_STRING_VENDOR},
        {(u8*)Joystick_StringProduct, JOYSTICK_SIZ_STRING_PRODUCT},
        {(u8*)Joystick_StringSerial, JOYSTICK_SIZ_STRING_SERIAL}
      };

    里面被引用,我理解的 这个 1 ,2,3,这三个值就这三个字符串在数组中的索引。

    /* USB String Descriptors (optional) */
    const u8 Joystick_StringLangID[JOYSTICK_SIZ_STRING_LANGID] =
      {
        JOYSTICK_SIZ_STRING_LANGID,
        USB_STRING_DESCRIPTOR_TYPE,
        0x09,
        0x04
      }
      ; /* LangID = 0x0409: U.S. English */
    
    const u8 Joystick_StringVendor[JOYSTICK_SIZ_STRING_VENDOR] =
      {
        JOYSTICK_SIZ_STRING_VENDOR, /* Size of Vendor string */
        USB_STRING_DESCRIPTOR_TYPE,  /* bDescriptorType*/
        /* Manufacturer: "STMicroelectronics" */
        'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0,
        'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0,
        'c', 0, 's', 0
      };
    
    const u8 Joystick_StringProduct[JOYSTICK_SIZ_STRING_PRODUCT] =
      {
        JOYSTICK_SIZ_STRING_PRODUCT,          /* bLength */
        USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */
        'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0, ' ', 0, 'J', 0,
        'o', 0, 'y', 0, 's', 0, 't', 0, 'i', 0, 'c', 0, 'k', 0
      };
    u8 Joystick_StringSerial[JOYSTICK_SIZ_STRING_SERIAL] =
      {
        JOYSTICK_SIZ_STRING_SERIAL,           /* bLength */
        USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */
        'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0, '1', 0, '0', 0
      };

     

     

     

    1.2 配置描述符

    一个USB设备可以有多种配置,不同的配置使设备工作在不同的状态下,每个配置必须有一个配置描述符。其格式包括8个字段,共9字节。

     各个字段含义:
     bLength:用于表示配置描述符的长度,固定为9个字节,即0x09。
     bDescriptorType:用于表示配置描述符的类型值,固定为0x02。
     wTotalLength:用于表示配置信息的总长度,包括配置描述符、接口描述符、端点描述符长度的总和。
     bNumInterfaces:用于表示配置所支持的接口数。一般来说,USB设备的接口至少有一个,因此其最小值为1。
     bConfigurationValue:用于表示USB设备的配置值。
     iConfiguration:用于指出配置字符串描述符的索引值。具体字符串的内容在后面字符串描述符中定义。如果没有配置字符串,可以置为0。
     bmAttributes:用于表示USB设备特性。bmAttributes是接位寻址的,第6位置1表示使用总线电源;第5位置1表示支持远程唤醒功能;该字段其他位均保留,一般来说,第0~4位置0即可,第7位置1即可。
     bMaxPower:用于表示USB设备运行时所需要消耗的总线电流,单位以2mA为基准。USB设备可以从USB总线上获得最大的电流为500mA,因此bMaxPower字段的最大值可以设置为250。

    by louis:配置描述符的 第一段。

    bNumInterfaces: 下面的接口描述部分,有几个就是几。

    bConfigurationValue: 当使用SetConfiguration和GetConfiguration请求时所指定的配置索引值。

    bConfigurationValue:每个配置都有一个标识值。 看样子这个解释更让人容易理解。 暂时理解为这个配置的唯一标识。

    iConfiguration: 描述配置的   字符串描述符索引。

     /***************配置描述符***********************/
     0x09,		//bLength字段
     USB_CONFIGURATION_DESCRIPTOR_TYPE,		//bDescriptorType字段
     //wTotalLength字段
     JOYSTICK_SIZ_CONFIG_DESC,
     /* wTotalLength: Bytes returned    这个是两字节长度的,后面一个字节就为0了?*/
     0x00,
     
     0x01,	//bNumInterfaces字段
     0x01,	//bConfiguration字段
     0x00,	//iConfigurationz字段
     0x80,	//bmAttributes字段
     0xC8,	//bMaxPower字段

     

    1.3 字符串描述符

    在USB协议中字符串描述符是可选的。字符串描述符用于保存一些供应商名称、产品序列号等文本信息。它的长度是不固定的,随字符串的数量和信息的长度变化而变化。其格式如下:

     各字段含义:
     bLength:字符串描述符的长度,其值应为N+2。
     bDescriptorType:字符串描述符的类型值,为0x03。
     bString:UNICODE编码的字符串。

     

    1.4 接口描述符

    接口是端点的集合,负责完成USB的特定功能,例如数据的输入输出。接口描述符用于描述一个接口,包含了接口的特性,如端点个数,所属设备类和子类等。它有9个字段,共9字节。其格式如下:

    by louis:

     /*******************第一个接口描述符*********************/
     0x09,	//bLength字段
     0x04,	//bDescriptorType字段
     0x00,	//bInterfaceNumber字段 这个是第一个接口,所以是0, 第二个接口的是1
     0x00,	//bAlternateSetting字段
     0x02,	//bNumEndpoints字段    这个接口使用的端点数,为啥是两个?
    	// 参考 Device Class Definition for Human Interface  Devices (HID)   下面的三个参数决定了这个接口是个键盘
     0x03,	//bInterfaceClass字段       0x03   人机接口类(HID)  这还不意味着是键盘,只是表示是HID
     0x01,	//bInterfaceSubClass字段    0x01  0  No Subclass    1  Boot Interface Subclass   这个只能是 0或者1
     0x01,	//bInterfaceProtocol字段     Protocol Code  Description    0=None ;1=Keyboard  2=Mouse     3 - 255=Reserved 
     0x00,	//iInterface: 描述该接口的字符串描述符的索引   

    后面还有后续的描述符,参考:

    https://blog.csdn.net/tanjiaqi2554/article/details/78440726

    https://blog.csdn.net/qq_16777851/article/details/85222030

    设备  配置  接口 端点的关系。。

     

    关于USBHID协议以及鼠标键盘描述符的解释

    https://blog.csdn.net/jiujiujiuqiuqiuqiu/article/details/47277685

     

     

     

    STM32的USB例程JoyStickMouse改成自定义HID设备

    https://blog.csdn.net/chiqingjiao7503/article/details/86696875

    USB键盘数据解析

    https://blog.csdn.net/weixin_30348519/article/details/96396583

     

     

     

    五、端点描述符(endpoint)
    用于接口的每个端点都有自己的描述符。 此描述符包含主机确定每个端点的带宽要求所需的信息。 始终返回端点描述符作为GetDescriptor(配置)请求返回的配置信息的一部分。 无法使用GetDescriptor()或SetDescriptor()请求直接访问端点描述符。 端点零永远不会有端点描述符。

    表9-13显示了标准端点描述。

    展开全文
  • 摘要:为使支持向量数据描述(SVDD)能应用于无监督多分类情况,提出了一种基于人工免疫核聚类的...在人工数据集和UCI数据集上的实验表明,在为multi-SVDD指定分类数的情况下,AIKCSVDD仍比multi-SVDD具有更好的分类性能。
  • 七、USB描述分类

    千次阅读 2018-11-12 23:38:44
    USB描述符有以下几种:设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符、HID描述符 1、设备描述符  设备描述描述了USB设备的通用信息。一个USB设备只有一个设备描述符。比较特殊的是, 默认控制...

      USB描述符有以下几种:设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符、HID描述符

    1、设备描述符

      设备描述符描述了USB设备的通用信息。一个USB设备只有一个设备描述符。比较特殊的是, 默认控制管道的数据包的长度(也就是USB设备端点0的长度)是在设备描述符中定义的, 而不像其他端点一样是在端点描述符中定义的。

       描述设备速度,走的是USB1.1、USB2.0;设备的PID、VID等信息,设备描述符字段组成如下:

    偏移量

    字段名称

    长度(字节)

    字段值

    意义

    0

    bLength

    1

    数字

    设备描述符的字节数大小

    1

    bDescriptor Type

    1

    常数

    设备描述符类型编号

    2

    bcdUSB

    2

    BCD码

    USB版本号

    4

    bDeviceClass

    1

    USB分配的设备类代码

    5

    bDeviceSubClass

    1

    子类

    USB分配的子类代码

    6

    bDeviceProtocol

    1

    协议

    USB分配的设备协议代码

    7

    BMaxPacketSize0

    1

    数字

    端点0的最大包大小

    8

    idVendor

    2

    ID编号

    厂商编号

    10

    idProduct

    2

    ID编号

    产品编号

    12

    bcdDevice

    2

    BCD码

    设备出厂编号

    14

    iManufacturer

    1

    索引

    描述厂商字符串的索引

    15

    iProduct

    1

    索引

    描述产品字符串的索引

    16

    iSerialNumber

    1

    索引

    描述设备序列号字符串的索引

    17

    bNumConfigurations

    1

    数字

    可能的配置参数

    (1)、bLength

    这是一个以1字节二进制数为内容的字段。 该字段表示整个设备描述符的字节数大小,而整个设备描述符占用了17个字节, 因此bLength的值是固定的, 就是18, 用十六进制表示就是0x12。

    (2)、bDescriptorType

    设备描述符的类型,USB定义的设备描述符的类型编号为常数0x01,因此,该字段的值为固定值0x01。

    (3)、bcdUSB

    BCD码为内容的字段,该字段代表设备所遵循的USB协议的版本号。

    如:USB1.1,其bcdUSB值为0x0110

    USB2.0,其bcdUSB值为0x0200

    一个2字节的数0xABCD, AB为1个字节, CD为另一个字节, 其中AB为版本号的整数部分, C为版本号的第一个小数部分, D为版本号的第二个小数部分。

    (4)、bDeviceClass

    设备类型的代码,值从0x01~0xFE为USB定义的标准设备类,而值为0xFF时表示该设备类型代码是厂商自定义的类。如果设备类型不是在设备描述符中定义的, 则该值为0, 比如人机接口设备 ( HID) 类。

    (5)、bDEviceSubClass

    设备类中的子类类型,和bDeviceClass一样由USB规定和分配,当 bDeviceClass为0时, 此值也为0, 代表该子类类型不在设备描述符中定义。 值为0xFF时, 也代表子类类型是由厂商所定义的。

    (6)、bDeviceProduct

    设备所遵循的协议,该值有USB协议规定,当值为0xFF时,表示该设备采用厂商自己为该类定义的协议。

    (7)、bMaxPacketSize0

    描述了端点0的最大包的大小, 低速设备的bMaxPacketSize0恒为8, 全速设备可以是一般为 8、16、32或64, 即0x08、0x10、0x20或0x40, 而高速设备则为64。

    (8)、idVendor

    USB设备的生产厂商从USB开发者论坛(USB Implementers Forum)获得的ID号。  

    (9)、idProduct

    设备的生产厂商所定义的该设备的产品ID号。

    (10)、bcdDevice

    设备生产厂商来定义, 代表该设备的产品版本号。

    (11)、iMenufacturer

    设备生产厂商的字符串的索引值。值为0则代表没有使用该字段。

    (12)、iProduct

    描述该产品的字符串的索引值。值为0时表示没有使用该字段。

    (13)、iSerialNumber

    设备的序列号的索引值。每个设备都有一个特定的序列号, 可供主机来识别不同的设备。

    (14)、bNumConfigurations

    该设备总共支持的配置描述符的数量。

                                                       Bus hound抓取的设备描述符

    2、配置描述符

      配置描述符用于描述一个USB设备的属性和能力等配置信息。一个USB设备只需要一个配置描述符就可以了。比如一个USB接口的鼠标,其功能仅仅是简单的双向数据中断传输, 并且是总线供电, 因此按照这些要求来填写一个配置描述符即可。但是, 有些设备如果需要具有几种相对独立的配置(但前提是属于 同一种USB设备类), 比如一个USB接口的ISDN, 就可以有2种配置, 一种配置下建立 64 KB/ s 的双向数据交换通道; 而同时可以有另一种 128 KB/ s 的双向数据通道配置。这样, 这个ISDN就可以根据不同的网络情况来自动选择任一种数据交换方式。配置描述符字段组成如下:

    偏移量

    字段名称

    长度(字节)

    字段值

    意义

    0

    bLength

    1

    数字

    设备描述符的字节数大小

    1

    bDescriptor Type

    1

    常数

    配置描述符类型编号

    2

    wTotalLength

    2

    数字

    此配置所返回的所有数据大小

    4

    bNumInterfaces

    1

    数字

    此配置所支持的接口数量

    5

    bConfigurationsValue

    1

    数字

    Set_Configuration命令需要的参数值

    6

    iConfiguration

    1

    索引

    描述改配置的字符串的索引值

    7

    bmAttributes

    1

    位图

    供电模式的选择

    8

    MaxPower

    1

    mA

    设备从总线提取的最大电流

    (1)、bLedgth

    整个配置描述符的长度, 因此bLength是固定的, 值为9, 即0x09, 二进制表示为 00001001。

    (2)、bDescriptorType

    USB给配置描述符分配的类型编号, 值为常数0x02。

    (3)、wTotalLength

    该置所返回的所有描述符(包括配置、接口和端点描述符)的大小总和。

    (4)、bNumInterfaces

    该配置所支持的接口总数。

    (5)、bConfigurationValue

    该字段的值作为参数, 可被Set_Configuration和 Get_Configuration命令来调用, 用于该命令选定这个配置。

    (6)、iConfiguration

    该字段指向描述该配置描述符的字符串。 如果该设备没有用字符串描述该配置, 那么此字段为0。

    (7)、bmAttributes

    该字段1字节二进制数的每一位代表一个固定的含义:

    D7:Reserve,固定为1;

    D6:供电方式的选择, 值为1表示自供电, 值为0表示总线供电;

    D5:远程唤醒功能的选择, 值为1表示支持远程唤醒, 值为0则不支持;

    D4~D0:没有意义, 均把值固定为0。

    (8)、MaxPower

    设备从总线上获取的电流总量。电流值为字段值的两倍,设备可以获取到的最大电流为500mA,所以字段值最大为0xFA;

                                                      Bus hound上抓取的配置描述符

    3、接口描述符

      接口描述符用于描述一个特定接口的属性。接口一般是由一系列端点所组成的集合体,用于实现某种特定的USB的数据传输功能。一般一个USB设备只需具有一个接口。比如,USB移动存储设备中就只有一个用于实现Mass Storage类的接口, 在该接口下使用了批量输入Bulk_IN和批量输出Bulk_OUT 2个非0 端点用于传输文件。接口描述符还可以在配置后加以改变。前面已经提到, 标准的USB设备类型都是在 设备描述符中定义的, 但是有些类是基于接口在接口描述符中定义的, 如HID设备。接口描述符字段组成如下:

    偏移量

    字段名称

    长度(字节)

    字段值

    意义

    0

    bLength

    1

    数字

    设备描述符的字节数大小

    1

    bDescriptor Type

    1

    常数

    接口描述符类型编号

    2

    bInterfaceNumber

    1

    数字

    该接口的编号

    3

    bAlternateSetting

    1

    数字

    备用的接口描述符编号

    4

    bNumENDpoits

    1

    数字

    该接口使用的端点数,不包括端点0

    5

    bInterfaceClass

    1

    接口类型

    6

    bInterfaceSubClass

    1

    子类

    接口子类类型

    7

    bInterface

    1

    协议

    接口遵循的协议

    8

    iInterface

    1

    索引

    描述该接口的字符串索引值

    (1)、bLength

    整个配置描述符的长度,固定为0x09.

    (2)、bDescriptorType

    由USB给配置描述符分配的类型编号, 值为常数0x04。

    (3)、bInterfaceNumber

    接口的编号,如果一个配置拥有N个接口, 那么这些接口都是互不相干的, 每一个接口都有惟一的编号, USB就是通过此字段来识别不同的接口。默认值为0。

    (4)、bAlternateSetting

    USB设备的配置与USB配置描述符是一一对应的, 即一个配置只能有一个配置描述符。USB允许多个接口描述符来描述同一个接口, 而且这些描述符都可以通过命令来切换。这里,此字段就是每一个这类描述符惟一的编号。USB可以通过调用这个字段来切换描述同一个接口的不同描述符。控制传输中可以通过Get_Interface和Set_Interface来获取、设置目前正在使用的描述一个确定接口的接口描述符的编号。

    (5)、bNumEndpoints

    该接口使用的端点总数(除端点0之外)。如果此值为0, 则意味着该接口只使用了端点0。

    (6)、bInterfaceClass

    该接口所属的类别。这个类别编号由USB来分配。当值为0xFF时, 表示该接口是厂商所定义的接口类型。而值0保留。

    (7)、bInterfaceSubClass

    接口所属的类别中的子类类型。这个子类编号也由USB分配。同bInterfaceClass字段一样, 当其值为0xFF时代表该接口由厂商自己所定义。而值0保留。

    (8)、bInterfaceProtocol

    此接口类所遵循的类的协议。因而, 该字段的值跟bInterfaceClass和bInterfaceSubClass字段是相关的。其值从1~0xFE由USB分配, 代表不同标准的设备类的协议。 当值为0时, 表示该接口不遵循任何类协议; 而值为0xFF时, 表示该接口应用了厂商自定义的类协议。

    (9)、iInterface

    指向字符串描述符中相应的字符串内容, 用于描述该接口。 如果设备没有启用字符串描述符 , 则该值为0。

                                                      Bus hound中抓取到的接口描述符

    4、端点描述符

    端点描述符用于描述接口所使用的非0端点的属性, 包括输入/输出方向、端点号和端点容量即包的大小等。端点描述符字段组成如下:

    偏移量

    字段名称

    长度(字节)

    字段值

    意义

    0

    bLength

    1

    数字

    设备描述符的字节数大小

    1

    bDescriptorType

    1

    常数

    端点描述符类型编号

    2

    bEndpointAddress

    1

    端点

    端点地址及输入输出属性

    3

    bmAttributes

    1

    位图

    端点传输类型属性

    4

    wMaxPacketSize

    2

    数字

    端点收、发的最大包的大小

    5

    bIterval

    1

    数字

    主机查询端点的时间间隔

    (1)、bLength

    这个端点描述符的长度。

    (2)、bDescriptorType

    USB为端点描述符分配的类型编号, 因此, 此字段的值固定, 即为0x05。

    (3)、bEndpointAddress

    D7 端点方向

    0       OUT端点

    1       IN端点

    D6~D4     保留

    D3~D0     端点编号

    (4)、bmAttributes

    D5~D4 用途

    00     数据端点

    01     反馈端点

    10     隐式反馈数据端点

    11     保留

    D3~D2 同步类型

    00     非同步

    01     异步

    10     自适应

    11     同步

    D1~D0 传输类型

    00     控制传输

    01     同步传输

    10     块传输

    11     中断传输

    如果该端点不是同步端点,D5~D2保留且必须置0。

    (5)、wMaxPacketSize

    该端点最大包的大小。其中D10~D0位共11位为有效内容。在USB协议1 .1中D15~D11位保留, 值为0, 且最大包的大小范围为0~1023。

    (6)、bIterval

    主机轮询设备的周期。在USB协议1.1中, 对于中断端点, 该字段的值为1~255,时间单位ms,因此假设值为250, 则表示时间间隔为250ms; 对于同步端点, 该字段值固定为1 ; 而批量端点和控制端点则忽略该字段 ,值无效。

                                                     Bus hound中抓取的端点描述符

    5、字符串描述符

      字符串描述符是一个可选的描述符,长度不固定。字符串描述符字段组成如下:

    偏移量

    字段名称

    长度(字节)

    字段值

    意义

    0

    bLength

    1

    数字

    设备描述符的字节数大小

    1

    bDescriptorType

    1

    常数

    字符串描述符类型编号

    2

    bString

    N

    数字

    UNICODE编码的字符串

    (1)、bLength

    整个字符串描述符的长度。

    (2)、bDescriptorType

    USB为端点描述符分配的类型编号, 因此, 此字段的值固定, 即为0x03。

    (3)、bString

    一个以UNICODE编码的字符为内容的字符串。

                                                       Bus hound抓取的字符串描述符

    7、HID描述符

             bLength: 描述符长度。

             bDescriptorType:描述符类型,HID描述符的类型为0x21。

             bcdHID: 所遵循的HID协议版本。

             bCountryCode: 国家代码。

             bNumDescriptors: 下级描述符数量,通常至少需要一个报告描述符。

             bDescriptorType: 下级描述符类型,例如报告描述符。

             wDescriptorLength: 下级描述符长度。

                                                     Bus hound中抓取的HID描述符

    总的来说,描述符的作用就是,让主机知道你是什么设备信息(PID、VID、序列号...),跑的是那种速度的协议(USB1.0、USB1.1、USB2.0...),然后给你分配相应的地址。

    如有错误或者疑问,请及时提出。谢谢!!!

                        上一篇                                                                                 下一篇

    展开全文
  • 产品分类器 这个 repo 探索了使用图像和文本特征对内容(产品)进行分类的简单方法。 用于分类的数据集是从公共 API 中提取的。 从 shopstyle api 中提取的产品定义的相关部分是产品名称、描述、图像和正确的类别。 ...
  • 使用libsvm数据分类

    2018-05-23 16:49:41
    python3 编写的使用libsvm包进行数据分类训练以及预测等,包含了一份训练数据、测试数据以及数据格式转换的代码
  • 畅销书分类中的产品。 要求 PHP> = 5.6.0 法师核心 兼容性 Magento> = 2.0 安装说明 通过Composer安装扩展。 清除缓存,从管理面板中注销,然后再次登录。 激活扩展 特征 创建属性以按定义时期内的产品销售对产品...
  • 3、网站分类可以设置seo标题、关键词和描述。 四、详情页 1、自动识别是网址详情、二维码详情或者是文章页; 2、友好友好时间; 3、显示猜你喜欢,推荐相同标签或相同分类的内容; 4、可以单独设置文章的seo标题、...
  • 关键字描述:信息 功能 分类 设置 如何 选项 &ldquo &rdquo 如下 添加 Discuz!7.0是康盛创想(Comsenz)公司于2008年12月份发布的一款论坛BBS建站产品。在Discuz!7.0版本中,为了更加聚合论坛的信息,用户可以设置...
  • 我们提出了三种方法引入这种描述: 模板法——对每个标签静态地指定一个描述; 抽取法——对每个标签在输入文本中抽取一段文字作为描述; 生成法——动态地根据输入的文本为每个标签生成一段描述。 使用这种技术,...

    论文标题:

    Description Based Text Classification with Reinforcement Learning

    论文作者:

    Duo Chai, Wei Wu, Qinghong Han, Fei Wu and Jiwei Li

    论文链接:

    https://arxiv.org/pdf/2002.03067.pdf

    收录情况:

    ICML 2020


    一般来说,模型越深效果越好。但是同时,模型越深也更难训练——即无法收敛到训练集上一个好的值。

    今天,我们给大家介绍近期香侬科技被ICML2020接受的的一篇文章基于类别描述的文本分类模型

    该模型的主要思想是:通过显式地引入对分类标签的描述提高文本分类的效果。我们提出了三种方法引入这种描述:

    • 模板法——对每个标签静态地指定一个描述;

    • 抽取法——对每个标签在输入文本中抽取一段文字作为描述;

    • 生成法——动态地根据输入的文本为每个标签生成一段描述。

    使用这种技术,我们能够在单标签文本分类、多标签文本分类和多角度情感分析任务的10个数据集上取得显著更好的效果

    文本分类中的标签

    文本分类是自然语言处理中非常重要的一项任务,它要求模型判断输入文本的类别,如情感、评分、类型等。

    从分类数量上说,分为单标签分类和多标签分类,前者指每个文本只有一个标签类,后者指每个文本可以有多个标签类。

    从任务类型讲,可以分为文档分类、情感分析等,前者指对整个输入文本分类(可以是单标签或多标签),后者指对文本的多种情感判断类别。

    经典的文本分类方法是把待分类标签视为简单的下标。如当前的输入文本是“这个电影真好看”,需要分类的标签是{1:积极,0:消极},模型接受文本之后,输出的是0或者1,代表分类结果。

    显然,用这种分类方法,模型完全无视了“积极”和“消极”的语义,对更复杂标签,这无疑是一种“语义浪费”。我们想要把标签提供的信息利用起来。

    鉴于此,我们提出在输入文本的同时,也输入对标签本身的描述,比如牛津词典对“positive”的定义(描述)是:“full of hope and confidence, or giving cause for hope and confidence”。

    把这个描述和原始文本拼接在一起,送入模型,模型输出一个概率值,代表当前文本具有该标签类的可能性。如此,我们就能充分利用标签本身提供的语义。

    但是如果待分类文本的标签数很多(甚至上百个标签),一个一个为他们人工构造描述也是件麻烦的事情,况且人工构造的也不一定“准确”。

    为此,我们期望模型能动态地、根据输入句子的不同自动构造出一个描述来。

    因而,我们又提出了两种方法:抽取文本中的一段作为描述,和使用一个语言模型从头生成一段描述。这两种方法都可以使用强化学习得以实现。

    这三种方法的一个例子如下。对当前输入的文本,我们现在要去判断它是否属于“car”这个标签,而“car”的模板描述、抽取描述和生成描述分别如图所示。

    这种基于标签描述的方法有以下好处:

    • 融入了标签语义,而不仅仅是简单的下标,使得模型更好地进行分类;

    • 可以很轻松地进行多分类,只需要一个一个判断标签即可;

    • 得到标签描述具有一定的灵活性,不限于人工定义的标签描述。

    用这种方法,我们能够在单标签分类数据集AGNews, 20news, DBPedia, Yahoo, YelpP,IMDB,多标签分类数据集Reuters,AAPD,和多方面情感分析数据集BeerAdvocate,TripAdvisor取得显著更好的效果。

    使用强化学习来学习标签描述

    下面的问题是:对每个标签和每个输入,如何得到该标签的描述。模板法(Tem.)不必多说,我们简单使用维基百科的定义作为模板。

    由于我们没有显式提供每个标签应该抽取或生成怎样的描述,我们自然想到使用强化学习。

     | 抽取式模型(Ext.)

    首先我们来看如何从文本中抽取一段作为标签描述。设输入文本是,对每个标签,我们要构造一个描述,这个描述是输入文本中的一段,记为。这就等价于选取一个初始下标和一个终止下标,可以参数化为:

    就是对标签,从文本中选取下标作为起始下标的概率;而就是选取为终止下标的概率。这样,把这两个相乘,就得到了选取整个文本段作为描述的概率:

    在选取了描述之后,就把描述和文本拼接起来一起送入模型,让模型输出一个概率值,判断文本是否具有该标签,这就可以作为强化学习中的奖励(Reward),记为。如此一来,我们就可以用REINFORCE算法去更新参数:

     | 生成式模型(Abs.)

    同样地,生成式模型使用一个序列到序列的模型去从头生成描述,而不是从输入文本中选取下标。

    具体地说,对每个标签,我们使用一个公有的序列到序列模型生成它的描述:

    对不同的,我们在编码端和解码端的每一步额外添加一个标签表示向量

    和抽取式模型不同,生成式模型每次的 行为(Action) 是从词表中选取一个词,而词表往往非常大,这就可能导致方差变大,使得训练不稳定。

    为此,我们使用REGS——Reward for Every Generation Step去缓解这个问题。

    在REINFORCE里,一个句子的reward在生成结束之后才能得到,换句话说,对解码端的每一步,它们收到的reward是相同的。

    而在REGS里,我们使用一个判别器,对每一步赋予不同的reward:

    序列到序列模型使用标签模板初始化(即将文本作为输入,将标签模板作为输出)。

    实验

    为了验证该方法的有效性,我们在三类文本分类任务上实验:单标签分类、多标签分类和多方面情感分析。

    • 单标签分类指每个输入文本只有一个标签。数据集有AGNews, 20newsgroups, DBPedia, YahooAnswers, YelpReviewPolarity, IMDB。

    • 多标签分类指每个输入文本可能有多个标签。数据集有Reuters, AAPD。

    • 多方面情感分析指输入文本可能涉及多个方面,每个方面需要分类各自的标签。数据集有BeerAdvocate和TripAdvisor。

    我们的基线模型主要有LSTM和BERT-base。我们同样使用BERT-base作为主干模型。

    下表是在单标签分类任务上的结果(错误率,越小越好)。首先可以看到,基于标签描述的方法都优于BERT-base;其次,抽取式和生成式的描述生成方法平均优于基于模板的方法。

    下表是多标签分类任务上的结果,基于标签描述的方法具有显著更小的F1错误率。

    然后是多方面情感分析任务的结果。和BERT-base相比,我们的方法可以取得大幅度的提高,这是因为我们能从若干的情感方面中针对每个不同的方面,从文本中提取关于它的最重要信息,而不是一次性考虑所有的方面。

    接下来看看如果我们把模板法中的模板替换会有怎样的变化。

    具体地,我们尝试了四种不同的模板:下标(类似最传统的方法,把每个标签视为一个字符串似的数字,如"one","two")、关键词(把每个标签描述为单个关键词)、关键词拓展(把每个标签用多个近义的关键词描述)和维基百科定义(本文的方法)。

    结果如下表所示:

    显然,下标模板和传统方法没有区别,而其他方法都有所提升;多个关键词好于单个关键词,而更完备的描述(如维基百科定义)会提供更丰富的标签语义信息,故得到最好的效果。

    下面再来看看文本长度、训练集大小和收敛速度的影响。如下图所示,我们不难得到以下结论:

    • 随着文本长度的增加,原始方法(BERT)的效果迅速下降,而使用标签描述的方法由于标签本身具有的语义,模型的效果比BERT显著更好;

    • 训练集越小,各模型效果越差,但相比BERT,基于标签描述的方法具有更好的小样本表现,这说明基于标签描述的方法在小样本上有更好的泛化能力;

    • 模板法由于提供的是静态的标签描述,故模型能够快速收敛,相比之下,生成式模型需要去学习如何生成标签描述,故开始训练时效果并不好,但随着训练的进行,它最终也能够收敛并取得更好的结果。

    最后来探究不同初始化方法的影响。众所周知,强化学习难以训练和收敛,所以一个号的初始化可以极大加快收敛。

    我们在Yahoo和AAPD两个数据集上,对抽取式和生成式模型进行不同的初始化,然后用强化学习训练。

    对抽取式(Ext),我们探究三种初始化方法:dummy Init是以选择dummy token的方法初始化模型,ROUGE-L Init是选择和模板描述相比得到最大的ROUGE-L得分的文段,random Init是随机初始化。

    对生成式(Abs),template Init是用模板作为要生成的描述去初始化模型。结果如下图所示。

    可以看到,几种初始化方法对抽取式而言差别不是很大,即使是随机初始化也可以实现可以接受的准确率,但是对生成式而言,随机初始化无法使模型收敛。

    这是因为抽取式模型的搜索空间更小,因为它只需要选择文段,而生成式模型的搜索空间是所有可能的句子,随机初始化无法导致收敛。

    小结

    我们提出了基于标签描述的文本分类方法,该方法为每个标签提供一段文本描述,或是由模板得到,或是文本中的一段,或者是动态生成的一个句子。

    我们使用强化学习训练标签描述生成模型,然后把生成的标签和文本拼接在一起,让模型判断文本是否具有该标签。

    实验表明,这种方法能够在单标签分类、多标签分类和多方面情感分析任务上取得显著的效果,尤其是对复杂的标签(如多方面情感分析)体系,该方法具有突出的优势。

    实际上,这种方法可以看作是一种广义的问答(QA),Question就是标签描述,Document就是输入文本,Answer就是输出概率。从这个角度讲,其他许多任务都可以统一到这种框架下。

    ????

    现在,在「知乎」也能找到我们了

    进入知乎首页搜索「PaperWeekly」

    点击「关注」订阅我们的专栏吧

    关于PaperWeekly

    PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

    展开全文
  • 企业对产品进行渗透测试时书面报告中的web漏洞描述,包含漏洞分类、漏洞名称、危险等级、漏洞描述、修复建议。
  • get_cat_ID() 根据分类名称获取分类ID ///// get_cat_name() 根据分类ID获取分类名称 用法: 参数:$cat_name 分类名称默认值为"General"。类型为字符型,可选 返回的值:出错时返回0,成功则返回分类...
  • 获得指定分类,以数组或是对象的形式返回。 函数使用 get_category( $cat, $out, $filter ) 参数描述 $cat:分类ID,或 $out返回值类型[OBJECT, ARRAY_A, or ARRAY_N] $filter 函数返回值 这里主要讲一下对象类型...
  • 实验目的: 理解计算机图像分类的基本原理,掌握数字图像非监督分类以及监督分类的具体方法和过程,以及两种分类方法的区别。 二.实验平台:ERDAS IMAGINE 9.1 三.实验要求:掌握非监督分类;非监督分类结果评价;...
  • 3、网站分类可以设置seo标题、关键词和描述。 四、详情页 1、自动识别是网址详情、二维码详情或者是文章页; 2、友好友好时间; 3、显示猜你喜欢,推荐相同标签或相同分类的内容; 4、可以单独设置文章的seo标题、...
  • SPSS统计描述分析

    千次阅读 2022-01-11 16:02:29
    SPSS统计描述分析
  • 任务目的:对输入的图像赋予一个标签,这个标签在指定类别集合中。 下面这个例子中,图像分类模型拍摄一张图像并将概率分配给4个标签{cat,dog,hat,mug}。如图所示,请记住,对于计算机而言,图像表示为一个大型3...
  • 指定数据集进行分类问题的分析,选择适当的分类算法,编写程序实现,提交程序和结果报告 数据集: balance-scale.data(见附件一) ,已有数据集构建贝叶斯分类器。 数据包括四个属性:五个属性值 第一个属性值...
  • 分类信息产品页面

    2011-12-02 20:00:27
    描述>=20个字符,不支持HTML标签。 详细的资源描述有机会获得我们的推荐,更有利于他人下载,赚取更多积分
  • 2.报告描述符中的数据描述项 3.数据描述项的标签 4.STM32某鼠标设备报告描述符代码 5.报告描述符生成工具介绍 1.报告描述符的概念和作用 开门见山,报告描述符就是描述报告(HID接口上传输事务中的数据)的一组...
  • OpenCV57:级联分类器的训练

    千次阅读 2022-01-24 16:01:44
    级联分类器的训练过程 学习函数: opencv_createsamples opencv_annotation opencv_traincascade opencv_visualisation 原理 使用弱分类器的增强级联包括两个主要阶段:训练阶段和检测阶段。对象检测教程中介绍...
  • 目录任务简介任务设计任务实施任务1 购买对象存储服务OBS任务描述任务操作任务验证任务2 部署基于ModelArts的垃圾分类任务描述任务操作任务验证 任务简介 生活垃圾处理不当,不仅会对城市环境构成危害,还会损害到...
  • 附件中文档针对与市面上主流使用的数据库以及缓存组件做了细致分类针对部分产品做了详尽的原理描述。适用于初学者。
  • 描述随机森林分类分类:含义分类是一种监督学习。 它指定数据元素所属的类,并且在输出具有有限和离散值时最好使用。 它也预测输入变量的类别。 有 2 种分类类型: 二项式多类分类:用例 使用分类用例的一些关键...
  • R语言描述性统计分析

    千次阅读 2021-04-14 22:08:21
    1. 简单描述 1.1 数值变量 summary() 函数 summary()函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计。 其格式为: summary(data1$var1) Hmisc包中的describe()...
  • 使用R进行描述性统计分析

    千次阅读 2019-09-24 22:30:48
    title: “使用R进行描述性统计分析” output: html_document: ###单组计算描述性统计量 在对数据进行统计分析之前,一般我们需要知道当前数据的描述统计情况,如集中趋势、离散趋势、分布形状。如果数据表中有很...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 301,637
精华内容 120,654
关键字:

产品分类描述