We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is there any implementation code for xnor_layer.c and xnor_layer.h for Darknet framework?
#include "xnor_layer.h" #include "binary_convolution.h" #include "convolutional_layer.h" layer make_xnor_layer(int batch, int h, int w, int c, int n, int size, int stride, int pad, ACTIVATION activation, int batch_normalize) { int i; layer l = {0}; l.type = XNOR; l.h = h; l.w = w; l.c = c; l.n = n; l.batch = batch; l.stride = stride; l.size = size; l.pad = pad; l.batch_normalize = batch_normalize; l.filters = calloc(c*n*size*size, sizeof(float)); l.biases = calloc(n, sizeof(float)); int out_h = convolutional_out_height(l); int out_w = convolutional_out_width(l); l.out_h = out_h; l.out_w = out_w; l.out_c = n; l.outputs = l.out_h * l.out_w * l.out_c; l.inputs = l.w * l.h * l.c; l.output = calloc(l.batch*out_h * out_w * n, sizeof(float)); if(batch_normalize){ l.scales = calloc(n, sizeof(float)); for(i = 0; i < n; ++i){ l.scales[i] = 1; } l.mean = calloc(n, sizeof(float)); l.variance = calloc(n, sizeof(float)); l.rolling_mean = calloc(n, sizeof(float)); l.rolling_variance = calloc(n, sizeof(float)); } l.activation = activation; fprintf(stderr, "XNOR Layer: %d x %d x %d image, %d filters -> %d x %d x %d image\n", h,w,c,n, out_h, out_w, n); return l; } void forward_xnor_layer(const layer l, network_state state) { int b = l.n; int c = l.c; int ix = l.w; int iy = l.h; int wx = l.size; int wy = l.size; int s = l.stride; int pad = l.pad * (l.size/2); // MANDATORY: Make the binary layer ai2_bin_conv_layer al = ai2_make_bin_conv_layer(b, c, ix, iy, wx, wy, s, pad); // OPTIONAL: You need to set the real-valued input like: ai2_setFltInput_unpadded(&al, state.input); // The above function will automatically binarize the input for the layer (channel wise). // If commented: using the default 0-valued input. ai2_setFltWeights(&al, l.filters); // The above function will automatically binarize the input for the layer (channel wise). // If commented: using the default 0-valued weights. // MANDATORY: Call forward ai2_bin_forward(&al); // OPTIONAL: Inspect outputs float *output = ai2_getFltOutput(&al); // output is of size l.px * l.py where px and py are the padded outputs memcpy(l.output, output, l.outputs*sizeof(float)); // MANDATORY: Free layer ai2_free_bin_conv_layer(&al); }
The text was updated successfully, but these errors were encountered:
🔥 🔥 🔥
e15189d
Cloud you have implement the function in Darknet?
Sorry, something went wrong.
No branches or pull requests
Is there any implementation code for xnor_layer.c and xnor_layer.h for Darknet framework?
The text was updated successfully, but these errors were encountered: