Skip to content

Instantly share code, notes, and snippets.

View nihui's full-sized avatar

nihui

  • Shanghai
  • 17:00 (UTC +08:00)
  • X @nihui
View GitHub Profile
@nihui
nihui / mylmdb.h
Created October 9, 2017 02:31
simple lmdb read write wrapper
#ifndef MYLMDB_H
#define MYLMDB_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h> // mkdir
#include <string>
@nihui
nihui / myrec.h
Created March 6, 2018 06:23
simple rec read write wrapper
#ifndef MYREC_H
#define MYREC_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <vector>
@nihui
nihui / load_proc_save.cpp
Last active July 3, 2019 15:52
load proc save
using namespace ncnn;
class TaskQueue
{
public:
TaskQueue()
{
}
@nihui
nihui / op.h
Created July 11, 2019 07:50 — forked from wkcn/op.h
MXNet CPP Op
This file has been truncated, but you can view the full file.
/*!
* Copyright (c) 2019 by Contributors
* \file op.h
* \brief definition of all the operators
* \author Chuntao Hong, Xin Li
*/
#ifndef MXNET_CPP_OP_H_
#define MXNET_CPP_OP_H_
@nihui
nihui / get_affine_transform.cpp
Created August 7, 2019 06:21
estimate rigid transform from two sets of points, a simplified version for cv::estimateRigidTransfrom
#include <opencv2/core/core.hpp>
static cv::Mat get_affine_transform(const cv::Point2f* a, const cv::Point2f* b, int count)
{
double sa[4][4]={{0.}};
double sb[4]={0.};
double m[4];
cv::Mat A( 4, 4, CV_64F, sa );
cv::Mat B( 4, 1, CV_64F, sb );
cv::Mat MM( 4, 1, CV_64F, m );
@nihui
nihui / gluon_random_crop_resize.py
Created August 29, 2019 10:00
gluon random crop and resize on gpu
# 256x256
data = batch.data[0].as_in_context(ctx)
# random crop resize to 224x224
data_elems = nd.split(data, num_outputs=batch_size, axis=0)
for b in range(batch_size):
xy0 = random.randint(0, 32)
xy1 = random.randint(256-32, 256)
cropped = nd.slice(data_elems[b], begin=(None,None,xy0,xy0), end=(None,None,xy1,xy1))
@nihui
nihui / git-tag-delete-local-and-remote.sh
Created September 8, 2019 02:57 — forked from mobilemind/git-tag-delete-local-and-remote.sh
how to delete a git tag locally and remote
# delete local tag '12345'
git tag -d 12345
# delete remote tag '12345' (eg, GitHub version too)
git push origin :refs/tags/12345
# alternative approach
git push --delete origin tagName
git tag -d tagName
@nihui
nihui / git-clearHistory
Created September 9, 2019 14:03 — forked from stephenhardy/git-clearHistory
Steps to clear out the history of a git/github repository
-- Remove the history from
rm -rf .git
-- recreate the repos from the current content only
git init
git add .
git commit -m "Initial commit"
-- push to the github remote repos ensuring you overwrite history
git remote add origin [email protected]:<YOUR ACCOUNT>/<YOUR REPOS>.git
@nihui
nihui / gitproxy-socat
Created April 27, 2020 14:34 — forked from sit/gitproxy-socat
A simple wrapper around socat to use as a git proxy command
#!/bin/sh
# Use socat to proxy git through an HTTP CONNECT firewall.
# Useful if you are trying to clone git:// from inside a company.
# Requires that the proxy allows CONNECT to port 9418.
#
# Save this file as gitproxy somewhere in your path (e.g., ~/bin) and then run
# chmod +x gitproxy
# git config --global core.gitproxy gitproxy
#
# More details at http://tinyurl.com/8xvpny
@nihui
nihui / cpu.txt
Created November 22, 2020 01:16 — forked from BlueCocoa/cpu-test1.txt
ncnn benchmark on Apple Silicon M1
$ ./benchmark/benchncnn
thread_policy_set error 46
loop_count = 4
num_threads = 8
powersave = 0
gpu_device = -1
cooling_down = 1
squeezenet min = 5.64 max = 6.24 avg = 5.88
squeezenet_int8 min = 8.93 max = 8.97 avg = 8.94
mobilenet min = 8.86 max = 8.99 avg = 8.91