Notas de la versión de CNTK v2.4
Aspectos destacados de esta versión
- Se ha movido a CUDA9, cuDNN 7 y Visual Studio 2017.
- Se ha quitado la compatibilidad con Python 3.4.
- Se ha agregado compatibilidad con VOLTA GPU y FP16.
- Mejor compatibilidad con ONNX.
- Mejora de rendimiento de CPU.
- Más direcciones ORGANIZATIVAs.
Direcciones organizativas
top_k
operación: en el paso hacia delante calcula los valores principales (más grandes) k y los índices correspondientes a lo largo del eje especificado. En el paso hacia atrás, el degradado se dispersa a los elementos k superiores (un elemento que no está en la k superior obtiene un degradado cero).gather
Operation ahora admite un argumento de ejesqueeze
yexpand_dims
las operaciones para quitar y agregar fácilmente ejes singletonzeros_like
yones_like
las operaciones. En muchas situaciones, solo puede confiar en CNTK difundir correctamente un simple 0 o 1, pero a veces necesita el tensor real.depth_to_space
: reorganiza los elementos del tensor de entrada de la dimensión de profundidad en bloques espaciales. El uso típico de esta operación es para implementar la convolución de sub píxeles para algunos modelos de super resolución de imágenes.space_to_depth
: reorganiza los elementos del tensor de entrada de las dimensiones espaciales a la dimensión de profundidad. Es en gran medida el inverso de DepthToSpace.sum
operation: cree una nueva instancia de Function que calcule la suma de elementos de tensores de entrada.softsign
operation: cree una nueva instancia de Function que calcule el signo temporal de elemento de un tensor de entrada.asinh
operation: cree una nueva instancia de Function que calcule el asinh de elemento de un tensor de entrada.log_softmax
operation: cree una nueva instancia de Function que calcule los valores normalizados logsoftmax de un tensor de entrada.hard_sigmoid
operation: cree una nueva instancia de Function que calcule los hard_sigmoid valores normalizados de un tensor de entrada.element_and
,element_not
, ,element_xor
element_or
operaciones lógicas en cuanto a elementosreduce_l1
operation: calcula la norma L1 del elemento de tensor de entrada a lo largo de los ejes proporcionados.reduce_l2
operation: calcula la norma L2 del elemento de tensor de entrada a lo largo de los ejes proporcionados.reduce_sum_square
operation: calcula el cuadrado de suma del elemento de tensor de entrada a lo largo de los ejes proporcionados.image_scaler
operación: modificación de la imagen mediante el escalado de sus valores individuales.
ONNX
- Se han realizado varias mejoras en la compatibilidad con ONNX en CNTK.
- Actualizaciones
- Se ha actualizado la operación ONNX
Reshape
para controlarInferredDimension
. - Agregar
producer_name
yproducer_version
campos a modelos ONNX. - Controlar el caso cuando no se especifica ni
auto_pad
pads
atrribute en la operación ONNXConv
.
- Se ha actualizado la operación ONNX
- Corrección de errores
- Se ha corregido un error en la serialización de operaciones de ONNX
Pooling
. - Corrección de errores para crear ONNX
InputVariable
con un solo eje por lotes. - Correcciones de errores y actualizaciones de la implementación de la operación ONNX
Transpose
para que coincida con las especificaciones actualizadas. - Correcciones de errores y actualizaciones de la implementación de ONNX
Conv
,ConvTranspose
yPooling
las operaciones para que coincidan con las especificaciones actualizadas.
- Se ha corregido un error en la serialización de operaciones de ONNX
Operadores
- Convolución de grupo
- Se ha corregido un error en la convolución de grupos. La salida de CNTK
Convolution
operación cambiará para los grupos > 1. Se espera una implementación más optimizada de la convolución de grupos en la próxima versión. - Mejor informe de errores para la convolución de grupos en la
Convolution
capa.
- Se ha corregido un error en la convolución de grupos. La salida de CNTK
Convolución binaria halide
- La compilación CNTK ahora puede usar bibliotecas halide opcionales para compilar
Cntk.BinaryConvolution.so/dll
la biblioteca que se puede usar con elnetopt
módulo. La biblioteca contiene operadores de convolución binaria optimizados que funcionan mejor que los operadores de convolución binarized basados en Python. Para habilitar Halide en la compilación, descargue la versión de Halide y establezcaHALIDE_PATH
el entorno varibale antes de iniciar una compilación. En Linux, puede usarlo./configure --with-halide[=directory]
para habilitarlo. Para obtener más información sobre cómo usar esta característica, consulte How_to_use_network_optimization.