void JNICALL
Java_com_example_nativeopencvandroidtemplate_MainActivity_benchmarkFromJNI() {
cv::Mat mat1 = cv::Mat::zeros(1000, 1000, CV_8UC4);
cv::Mat mat2 = cv::Mat::zeros(1000, 1000, CV_8UC1);
std::chrono::system_clock::time_point start = std::chrono::system_clock::now();
for(int i = 0; i < 1000; ++i) {
cv::cvtColor(mat1, mat2, cv::COLOR_RGBA2GRAY);
cv::cvtColor(mat2, mat1, cv::COLOR_GRAY2RGBA);
}
std::chrono::duration<double> dur = std::chrono::system_clock::now() - start;
__android_log_print(ANDROID_LOG_DEBUG, TAG, "benchmark computation time = %f seconds\n", dur.count());
using namespace std::chrono_literals;
std::this_thread::sleep_for(20000ms);
}
#include <iostream>
#include <vector>
std::vector<int> arr = { 100, 50, 25, 10, 5, 1 };
int n = 100;
int matches = 0;
void calc( int val, unsigned int offs ) {
if( val == n ) {
matches++;
return;
} else if( val > n ) {
return;
}
for( unsigned int i = offs; i < arr.size(); ++i ) {
calc( val + arr[i], i );
}
}
int main( int argc, char** argv ) {
calc( 0, 0 );
std::cout << matches << std::endl;
return( EXIT_SUCCESS );
}
Что касается второго вопроса, то в, например, text-generation-webui есть генератор персонажей. Достаточно словами в системном промпте попросить модель отвечать как какой-то персонаж. Можно даже описать биографию этого персонажа. Есть и другие способы с применением PEFT.