| | |
| | | cudnnDataType_t data_type = CUDNN_DATA_FLOAT; |
| | | #endif |
| | | // Tensor Core uses CUDNN_TENSOR_OP_MATH instead of CUDNN_DEFAULT_MATH |
| | | #if(CUDNN_MAJOR >= 7) |
| | | cudnnSetConvolutionMathType(l->convDesc, CUDNN_TENSOR_OP_MATH); |
| | | #endif |
| | | |
| | | // INT8_CONFIG, INT8_EXT_CONFIG, INT8x4_CONFIG and INT8x4_EXT_CONFIG are only supported |
| | | // on architectures with DP4A support (compute capability 6.1 and later). |
| | |
| | | int timeout; // master sock timeout, shutdown after timeout millis. |
| | | int quality; // jpeg compression [1..100] |
| | | |
| | | int _write(int sock, char *s, int len) |
| | | int _write(int sock, char const*const s, int len) |
| | | { |
| | | if (len < 1) { len = strlen(s); } |
| | | return ::send(sock, s, len, 0); |
| | |
| | | params.push_back(IMWRITE_JPEG_QUALITY); |
| | | params.push_back(quality); |
| | | cv::imencode(".jpg", frame, outbuf, params); |
| | | unsigned int outlen = outbuf.size(); |
| | | size_t outlen = outbuf.size(); |
| | | |
| | | #ifdef _WIN32 |
| | | for (unsigned i = 0; i<rread.fd_count; i++) |
| | |
| | | else // existing client, just stream pix |
| | | { |
| | | char head[400]; |
| | | sprintf(head, "--mjpegstream\r\nContent-Type: image/jpeg\r\nContent-Length: %lu\r\n\r\n", outlen); |
| | | sprintf(head, "--mjpegstream\r\nContent-Type: image/jpeg\r\nContent-Length: %zu\r\n\r\n", outlen); |
| | | _write(s, head, 0); |
| | | int n = _write(s, (char*)(&outbuf[0]), outlen); |
| | | //cerr << "known client " << s << " " << n << endl; |
| | |
| | | //fflush(stderr); |
| | | for (i = 0; i < net->n; ++i){ |
| | | layer l = net->layers[i]; |
| | | printf(" %d: layer = %d,", i, l.type); |
| | | //printf(" %d: layer = %d,", i, l.type); |
| | | if(l.type == CONVOLUTIONAL){ |
| | | resize_convolutional_layer(&l, w, h); |
| | | }else if(l.type == CROP){ |