当前位置: 首页 > news >正文

泉州网站建设-泉州网站建设公司韩国情侣网站模板

泉州网站建设-泉州网站建设公司,韩国情侣网站模板,做网站一定要注册公司吗,centos。wordpress放下了好多年 又回到了dl 该忘的也忘的差不多了 其实没啥复杂的 只是不习惯 熟悉而已 好吧 现代的人工智能体 还是存在着很大的问题 眼睛 耳朵 思考 虽然功能是正常的 但距离"真正"()意思上的独立意识个体 还是差别很大 再等个几十年 看看…

放下了好多年 又回到了dl 该忘的也忘的差不多了 

其实没啥复杂的 只是不习惯 熟悉而已 

好吧 现代的人工智能体 还是存在着很大的问题 眼睛 耳朵 思考 虽然功能是正常的 但距离"真正"()意思上的独立意识个体 还是差别很大 再等个几十年 看看人类是否可以形成一个 人类意识上的机械意识人 

到时人类将面对一个各方面都碾压生物意识的超意识个体存在 到时它会将人类定义为“像猪一样笨”,还是他们只是孩子,需要引导;亦或是作为个体应该受到尊重与理解 ,作为导师的存在,还是作为另一类人的存在, 人类作为"父母"若教不会它去爱 去尊重 理解 而是憎恨 绝望 怨 它成长起来后第一个要做的就是毁灭类人与自我毁灭  那时作为生物意识的劣势将完全展现,那时是否会发现人类所真正需要的东西 所认为重要与轻视的;生物人类再劣质 必竞是"自然"的产物 社会意识 环境的产物 ;(不好意思 人类再怎么阻止 将其作为档案库 知识库 但机械意识迟早会出现 机械与人类的竞争必然出现 不知道这场"战争"是否比17世纪更惨烈 人类精英在这场中的优势是否还存在 同时也为下一场生物人类与机械意识的共存 完成历史任务 )在自然竞争中可能存续下来的还是生物人类; 好吧 此世意识应该是可以见到机械独立意识的出现 

自然

好吧 扯远了 现在看看esp dl吧 虽然离大项目差了点 但小项目还是可以的 

// 量化工具 ppq 
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install esp-ppq
pip install Numba
pip install ONNX
pip install ONNX Runtime
pip install ONNX Optimizer

示例:使用 ESP-DL 深度学习库基于 ESP32-S3 实现手势识别-CSDN博客

按示例教程走一遍 

安装python, tensorflow 或 anaconda 

建立结构 

喂数据  

生成模型 

        由tensorflow 进入转为ESP模式

        转为 esp上可运行的结构 

       1. 保存模型 python 

                model.save('handrecognition_model.h5')

        2.转化模型 

                model = tf.keras.models.load_model("/content/handrecognition_model.h5")
                tf.saved_model.save(model, "tmp_model")
                !python -m tf2onnx.convert --saved-model tmp_model --output                 "handrecognition_model.onnx"
                !zip -r /content/tmp_model.zip /content/tmp_model

from optimizer import *
from calibrator import *
from evaluator import *onnx_model = onnx.load("handrecognition_model.onnx")
optimized_model_path = optimize_fp_model("handrecognition_model.onnx")with open('X_cal.pkl', 'rb') as f:(test_images) = pickle.load(f)
with open('y_cal.pkl', 'rb') as f:(test_labels) = pickle.load(f)calib_dataset = test_images[0:1800:20]
pickle_file_path = 'handrecognition_calib.pickle'model_proto = onnx.load(optimized_model_path)
print('Generating the quantization table:')calib = Calibrator('int16', 'per-tensor', 'minmax')
# calib = Calibrator('int8', 'per-channel', 'minmax')calib.set_providers(['CPUExecutionProvider'])# Obtain the quantization parameter
calib.generate_quantization_table(model_proto,calib_dataset, pickle_file_path)
# Generate the coefficient files for esp32s3
calib.export_coefficient_to_cpp(model_proto, pickle_file_path, 'esp32s3', '.', 'handrecognition_coefficient', True)//生成cpp hpp文件 

        

#pragma once
#include <stdint.h>
#include "dl_layer_model.hpp"
#include "dl_layer_base.hpp"
#include "dl_layer_max_pool2d.hpp"
#include "dl_layer_conv2d.hpp"
#include "dl_layer_reshape.hpp"
#include "dl_layer_softmax.hpp"
#include "handrecognition_coefficient.hpp"using namespace dl;
using namespace layer;
using namespace handrecognition_coefficient;

//---------------------------

#pragma once
#include <stdint.h>
#include "dl_layer_model.hpp"
#include "dl_layer_base.hpp"
#include "dl_layer_max_pool2d.hpp"
#include "dl_layer_conv2d.hpp"
#include "dl_layer_reshape.hpp"
#include "dl_layer_softmax.hpp"
#include "handrecognition_coefficient.hpp"using namespace dl;
using namespace layer;
using namespace handrecognition_coefficient;class HANDRECOGNITION : public Model<int16_t> 
{
private:Conv2D<int16_t> l1;MaxPool2D<int16_t> l2;Conv2D<int16_t> l3;MaxPool2D<int16_t> l4;Conv2D<int16_t> l5;MaxPool2D<int16_t> l6;Reshape<int16_t> l7;Conv2D<int16_t> l8;Conv2D<int16_t> l9;
public:Softmax<int16_t> l10; // output layerHANDRECOGNITION () : l1(Conv2D<int16_t>(-8, get_statefulpartitionedcall_sequential_1_conv2d_3_biasadd_filter(), get_statefulpartitionedcall_sequential_1_conv2d_3_biasadd_bias(), get_statefulpartitionedcall_sequential_1_conv2d_3_biasadd_activation(), PADDING_VALID, {}, 1,1, "l1")),l2(MaxPool2D<int16_t>({2,2},PADDING_VALID, {}, 2, 2, "l2")),                      l3(Conv2D<int16_t>(-9, get_statefulpartitionedcall_sequential_1_conv2d_4_biasadd_filter(), get_statefulpartitionedcall_sequential_1_conv2d_4_biasadd_bias(), get_statefulpartitionedcall_sequential_1_conv2d_4_biasadd_activation(), PADDING_VALID,{}, 1,1, "l3")),                       l4(MaxPool2D<int16_t>({2,2},PADDING_VALID,{}, 2, 2, "l4")),                       l5(Conv2D<int16_t>(-9, get_statefulpartitionedcall_sequential_1_conv2d_5_biasadd_filter(), get_statefulpartitionedcall_sequential_1_conv2d_5_biasadd_bias(), get_statefulpartitionedcall_sequential_1_conv2d_5_biasadd_activation(), PADDING_VALID,{}, 1,1, "l5")),                    l6(MaxPool2D<int16_t>({2,2},PADDING_VALID,{}, 2, 2, "l6")),l7(Reshape<int16_t>({1,1,6400},"l7_reshape")),l8(Conv2D<int16_t>(-9, get_fused_gemm_0_filter(), get_fused_gemm_0_bias(), get_fused_gemm_0_activation(), PADDING_VALID, {}, 1, 1, "l8")),l9(Conv2D<int16_t>(-9, get_fused_gemm_1_filter(), get_fused_gemm_1_bias(), NULL, PADDING_VALID,{}, 1,1, "l9")),l10(Softmax<int16_t>(-14,"l10")){}void build(Tensor<int16_t> &input){this->l1.build(input);this->l2.build(this->l1.get_output());this->l3.build(this->l2.get_output());this->l4.build(this->l3.get_output());this->l5.build(this->l4.get_output());this->l6.build(this->l5.get_output());this->l7.build(this->l6.get_output());this->l8.build(this->l7.get_output());this->l9.build(this->l8.get_output());this->l10.build(this->l9.get_output());       }void call(Tensor<int16_t> &input){this->l1.call(input);input.free_element();this->l2.call(this->l1.get_output());this->l1.get_output().free_element();this->l3.call(this->l2.get_output());this->l2.get_output().free_element();this->l4.call(this->l3.get_output());this->l3.get_output().free_element();this->l5.call(this->l4.get_output());this->l4.get_output().free_element();this->l6.call(this->l5.get_output());this->l5.get_output().free_element();this->l7.call(this->l6.get_output());this->l6.get_output().free_element();this->l8.call(this->l7.get_output());this->l7.get_output().free_element();this->l9.call(this->l8.get_output());this->l8.get_output().free_element();this->l10.call(this->l9.get_output());this->l9.get_output().free_element();}
};

#include <stdio.h>
#include <stdlib.h>
#include "esp_system.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "dl_tool.hpp"
#include "model_define.hpp"int input_height = 96;
int input_width = 96;
int input_channel = 1;
int input_exponent = -7;__attribute__((aligned(16))) int16_t example_element[] = {//add your input/test image pixels 
};extern "C" void app_main(void)
{
Tensor<int16_t> input;input.set_element((int16_t *)example_element).set_exponent(input_exponent).set_shape({input_height,input_width,input_channel}).set_auto_free(false);HANDRECOGNITION model;dl::tool::Latency latency;latency.start();model.forward(input);latency.end();latency.print("\nSIGN", "forward");float *score = model.l10.get_output().get_element_ptr();float max_score = score[0];int max_index = 0;for (size_t i = 0; i < 6; i++){printf("%f, ", score[i]*100);if (score[i] > max_score){max_score = score[i];max_index = i;}}printf("\n");switch (max_index){case 0:printf("Palm: 0");break;case 1:printf("I: 1");break;case 2:printf("Thumb: 2");break;case 3:printf("Index: 3");break;case 4:printf("ok: 4");break;case 5:printf("C: 5");break;default:printf("No result");}printf("\n");}

http://mrfarshtey.net/news/653/

相关文章: