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

dedecms网站地图模板自己做的网站提示不安全吗

dedecms网站地图模板,自己做的网站提示不安全吗,简单网站建设合同模板,辽源网站seo目录 效果 生成图片特征 查找踢足球的人 测试图片 模型信息 image_model.onnx text_model.onnx 项目 代码 Form1.cs Clip.cs 下载 C# Onnx Chinese CLIP 通过一句话从图库中搜出来符合要求的图片 效果 生成图片特征 查找踢足球的人 测试图片 模型信息 image_mod…目录 效果 生成图片特征 查找踢足球的人 测试图片 模型信息 image_model.onnx text_model.onnx 项目 代码 Form1.cs Clip.cs 下载 C# Onnx Chinese CLIP 通过一句话从图库中搜出来符合要求的图片 效果 生成图片特征 查找踢足球的人 测试图片 模型信息 image_model.onnx Inputs ------------------------- nameimage tensorFloat[1, 3, 224, 224] --------------------------------------------------------------- Outputs ------------------------- nameunnorm_image_features tensorFloat[1, 512] --------------------------------------------------------------- text_model.onnx Inputs ------------------------- nametext tensorInt64[1, 52] --------------------------------------------------------------- Outputs ------------------------- nameunnorm_text_features tensorFloat[1, 512] --------------------------------------------------------------- 项目 代码 Form1.cs using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace Onnx_Demo {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         } Clip mynet new Clip(model/image_model.onnx, model/text_model.onnx, model/myvocab.txt); float[] imagedir_features;         string image_dir test_img;         StringBuilder sb new StringBuilder(); private void button2_Click(object sender, EventArgs e)         {             //特征向量 可以存二进制文件或者向量数据库             imagedir_features mynet.generate_imagedir_features(image_dir);             txtInfo.Text 生成完成;             txtInfo.Text 有 mynet.imgnum 张图片,特征向量长度 imagedir_features.Length;         } private void button3_Click(object sender, EventArgs e)         {             if (imagedir_features null)             {                 MessageBox.Show(请先生成图片特征);                 return;             } sb.Clear();             txtInfo.Text ;             lblInfo.Text ;             pictureBox1.Image null; string input_text txt_input_text.Text;             if (string.IsNullOrEmpty(input_text))             {                 return;             }             ListDictionarystring, float top5imglist mynet.input_text_search_image(input_text, imagedir_features, mynet.imglist); sb.AppendLine(top5:);             foreach (var item in top5imglist)             {                 sb.AppendLine(Path.GetFileName(item.Keys.First())  相似度: item[item.Keys.First()].ToString(F2));             } txtInfo.Text sb.ToString();             lblInfo.Text Path.GetFileName(top5imglist[0].Keys.First());             pictureBox1.Image new Bitmap(top5imglist[0].Keys.First()); } private void Form1_Load(object sender, EventArgs e)         { }     } } using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms;namespace Onnx_Demo {public partial class Form1 : Form{public Form1(){InitializeComponent();}Clip mynet new Clip(model/image_model.onnx, model/text_model.onnx, model/myvocab.txt);float[] imagedir_features;string image_dir test_img;StringBuilder sb new StringBuilder();private void button2_Click(object sender, EventArgs e){//特征向量 可以存二进制文件或者向量数据库imagedir_features mynet.generate_imagedir_features(image_dir);txtInfo.Text 生成完成;txtInfo.Text 有 mynet.imgnum 张图片,特征向量长度 imagedir_features.Length;}private void button3_Click(object sender, EventArgs e){if (imagedir_features null){MessageBox.Show(请先生成图片特征);return;}sb.Clear();txtInfo.Text ;lblInfo.Text ;pictureBox1.Image null;string input_text txt_input_text.Text;if (string.IsNullOrEmpty(input_text)){return;}ListDictionarystring, float top5imglist mynet.input_text_search_image(input_text, imagedir_features, mynet.imglist);sb.AppendLine(top5:);foreach (var item in top5imglist){sb.AppendLine(Path.GetFileName(item.Keys.First()) 相似度: item[item.Keys.First()].ToString(F2));}txtInfo.Text sb.ToString();lblInfo.Text Path.GetFileName(top5imglist[0].Keys.First());pictureBox1.Image new Bitmap(top5imglist[0].Keys.First());}private void Form1_Load(object sender, EventArgs e){}} }Clip.cs public class Clip     {         int inpWidth 224;         int inpHeight 224;         float[] mean new float[] { 0.48145466f, 0.4578275f, 0.40821073f };         float[] std new float[] { 0.26862954f, 0.26130258f, 0.27577711f }; int context_length 52;         int len_text_feature 512; Net net;         float[] image_features_input; SessionOptions options;         InferenceSession onnx_session;         Tensorlong input_tensor;         ListNamedOnnxValue input_container;         IDisposableReadOnlyCollectionDisposableNamedOnnxValue result_infer;         DisposableNamedOnnxValue[] results_onnxvalue;         Tensorfloat result_tensors; TokenizerBase tokenizer; int[] text_tokens_input;         float[,] text_features_input; public int imgnum 0;         public Liststring imglist new Liststring(); public Clip(string image_modelpath, string text_modelpath, string vocab_path)         {             net CvDnn.ReadNetFromOnnx(image_modelpath); // 创建输出会话用于输出模型读取信息             options new SessionOptions();             options.LogSeverityLevel OrtLoggingLevel.ORT_LOGGING_LEVEL_INFO;             options.AppendExecutionProvider_CPU(0);// 设置为CPU上运行             // 创建推理模型类读取本地模型文件             onnx_session new InferenceSession(text_modelpath, options);//model_path 为onnx模型文件的路径             // 创建输入容器             input_container new ListNamedOnnxValue(); load_tokenizer(vocab_path); } void load_tokenizer(string vocab_path)         { tokenizer new TokenizerClipChinese();             tokenizer.load_tokenize(vocab_path);             text_tokens_input new int[1024 * context_length];         } Mat normalize_(Mat src)         {             Cv2.CvtColor(src, src, ColorConversionCodes.BGR2RGB); Mat[] bgr src.Split();             for (int i 0; i bgr.Length; i)             {                 bgr[i].ConvertTo(bgr[i], MatType.CV_32FC1, 1.0 / (255.0 * std[i]), (0.0 - mean[i]) / std[i]);             } Cv2.Merge(bgr, src); foreach (Mat channel in bgr)             {                 channel.Dispose();             } return src;         } unsafe void generate_image_feature(Mat srcimg)         {             Mat temp_image new Mat();             Cv2.Resize(srcimg, temp_image, new Size(inpWidth, inpHeight), 0, 0, InterpolationFlags.Cubic);             Mat normalized_mat normalize_(temp_image);             Mat blob CvDnn.BlobFromImage(normalized_mat);             net.SetInput(blob);             //模型推理读取推理结果             Mat[] outs new Mat[1] { new Mat() };             string[] outBlobNames net.GetUnconnectedOutLayersNames().ToArray();             net.Forward(outs, outBlobNames);             float* ptr_feat (float*)outs[0].Data;             int len_image_feature outs[0].Size(1);  //忽略第0维batchsize1, len_image_feature是定值512,跟len_text_feature相等的, 也可以写死在类成员变量里             image_features_input new float[len_image_feature];             float norm 0.0f;             for (int i 0; i len_image_feature; i)             {                 norm ptr_feat[i] * ptr_feat[i];             }             norm (float)Math.Sqrt(norm);             for (int i 0; i len_image_feature; i)             {                 image_features_input[i] ptr_feat[i] / norm;             }         } unsafe void generate_text_feature(Liststring texts)         {             ListListint text_token new ListListint(texts.Count);             for (int i 0; i texts.Count; i)             {                 text_token.Add(new Listint());             } for (int i 0; i texts.Count; i)             {                 tokenizer.encode_text(texts[i], text_token[i]);             } if (text_token.Count * context_length text_tokens_input.Length)             {                 text_tokens_input new int[text_token.Count * context_length];             } foreach (int i in text_tokens_input) { text_tokens_input[i] 0; } for (int i 0; i text_token.Count; i)             {                 if (text_token[i].Count context_length)                 {                     Console.WriteLine(text_features index i ,bigger than context_length \n);                     continue;                 }                 for (int j 0; j text_token[i].Count; j)                 {                     text_tokens_input[i * context_length j] text_token[i][j];                 } } int[] text_token_shape new int[] { 1, context_length }; text_features_input new float[text_token.Count, len_text_feature]; long[] text_tokens_input_64 new long[texts.Count * context_length];             for (int i 0; i text_tokens_input_64.Length; i)             {                 text_tokens_input_64[i] text_tokens_input[i];             } for (int i 0; i text_token.Count; i)             {                 input_tensor new DenseTensorlong(text_tokens_input_64, new[] { 1, 52 });                 input_container.Clear();                 input_container.Add(NamedOnnxValue.CreateFromTensor(text, input_tensor)); //运行 Inference 并获取结果                 result_infer onnx_session.Run(input_container); // 将输出结果转为DisposableNamedOnnxValue数组                 results_onnxvalue result_infer.ToArray(); // 读取第一个节点输出并转为Tensor数据                 result_tensors results_onnxvalue[0].AsTensorfloat(); float[] text_feature_ptr results_onnxvalue[0].AsTensorfloat().ToArray(); float norm 0.0f;                 for (int j 0; j len_text_feature; j)                 {                     norm text_feature_ptr[j] * text_feature_ptr[j];                 }                 norm (float)Math.Sqrt(norm);                 for (int j 0; j len_text_feature; j)                 {                     text_features_input[i, j] text_feature_ptr[j] / norm;                 } }         } void softmax(float[] input)         {             int length input.Length;             float[] exp_x new float[length];             float maxVal input.Max();             float sum 0;             for (int i 0; i length; i)             {                 float expval (float)Math.Exp(input[i] - maxVal);                 exp_x[i] expval;                 sum expval;             }             for (int i 0; i length; i)             {                 input[i] exp_x[i] / sum;             }         } int[] argsort_ascend(float[] array)         {             int array_len array.Length;             int[] array_index new int[array_len];             for (int i 0; i array_len; i)             {                 array_index[i] i;             } var temp array_index.ToList(); temp.Sort((pos1, pos2)              { if (array[pos1] array[pos2])                  {                      return -1;                  }                  else if (array[pos1] array[pos2])                  {                      return 0;                  }                  else                  {                      return 0;                  } }); return temp.ToArray();         } public ListDictionarystring, float input_text_search_image(string text, float[] image_features, Liststring imglist)         { int imgnum imglist.Count;             Liststring texts new Liststring { text }; generate_text_feature(texts); float[] logits_per_image new float[imgnum]; for (int i 0; i imgnum; i)             {                 float sum 0;                 for (int j 0; j len_text_feature; j)                 {                     sum image_features[i * len_text_feature j] * text_features_input[0, j]; //图片特征向量跟文本特征向量做内积                 }                 logits_per_image[i] 100 * sum;             } softmax(logits_per_image); int[] index argsort_ascend(logits_per_image); ListDictionarystring, float top5imglist new ListDictionarystring, float(5); for (int i 0; i 5; i)             {                 int ind index[imgnum - 1 - i];                 Dictionarystring, float result new Dictionarystring, float();                 result.Add(imglist[ind], logits_per_image[ind]);                 top5imglist.Add(result);             }             return top5imglist;         } public float[] generate_imagedir_features(string image_dir)         { imglist Common.listdir(image_dir);             imgnum imglist.Count;             Console.WriteLine(遍历到 imgnum 张图片); float[] imagedir_features new float[0]; for (int i 0; i imgnum; i)             {                 string imgpath imglist[i]; Mat srcimg Cv2.ImRead(imgpath); generate_image_feature(srcimg); imagedir_features imagedir_features.Concat(image_features_input).ToArray(); srcimg.Dispose();             } return imagedir_features; } } public class Clip{int inpWidth 224;int inpHeight 224;float[] mean new float[] { 0.48145466f, 0.4578275f, 0.40821073f };float[] std new float[] { 0.26862954f, 0.26130258f, 0.27577711f };int context_length 52;int len_text_feature 512;Net net;float[] image_features_input;SessionOptions options;InferenceSession onnx_session;Tensorlong input_tensor;ListNamedOnnxValue input_container;IDisposableReadOnlyCollectionDisposableNamedOnnxValue result_infer;DisposableNamedOnnxValue[] results_onnxvalue;Tensorfloat result_tensors;TokenizerBase tokenizer;int[] text_tokens_input;float[,] text_features_input;public int imgnum 0;public Liststring imglist new Liststring();public Clip(string image_modelpath, string text_modelpath, string vocab_path){net CvDnn.ReadNetFromOnnx(image_modelpath);// 创建输出会话用于输出模型读取信息options new SessionOptions();options.LogSeverityLevel OrtLoggingLevel.ORT_LOGGING_LEVEL_INFO;options.AppendExecutionProvider_CPU(0);// 设置为CPU上运行// 创建推理模型类读取本地模型文件onnx_session new InferenceSession(text_modelpath, options);//model_path 为onnx模型文件的路径// 创建输入容器input_container new ListNamedOnnxValue();load_tokenizer(vocab_path);}void load_tokenizer(string vocab_path){tokenizer new TokenizerClipChinese();tokenizer.load_tokenize(vocab_path);text_tokens_input new int[1024 * context_length];}Mat normalize_(Mat src){Cv2.CvtColor(src, src, ColorConversionCodes.BGR2RGB);Mat[] bgr src.Split();for (int i 0; i bgr.Length; i){bgr[i].ConvertTo(bgr[i], MatType.CV_32FC1, 1.0 / (255.0 * std[i]), (0.0 - mean[i]) / std[i]);}Cv2.Merge(bgr, src);foreach (Mat channel in bgr){channel.Dispose();}return src;}unsafe void generate_image_feature(Mat srcimg){Mat temp_image new Mat();Cv2.Resize(srcimg, temp_image, new Size(inpWidth, inpHeight), 0, 0, InterpolationFlags.Cubic);Mat normalized_mat normalize_(temp_image);Mat blob CvDnn.BlobFromImage(normalized_mat);net.SetInput(blob);//模型推理读取推理结果Mat[] outs new Mat[1] { new Mat() };string[] outBlobNames net.GetUnconnectedOutLayersNames().ToArray();net.Forward(outs, outBlobNames);float* ptr_feat (float*)outs[0].Data;int len_image_feature outs[0].Size(1); //忽略第0维batchsize1, len_image_feature是定值512,跟len_text_feature相等的, 也可以写死在类成员变量里image_features_input new float[len_image_feature];float norm 0.0f;for (int i 0; i len_image_feature; i){norm ptr_feat[i] * ptr_feat[i];}norm (float)Math.Sqrt(norm);for (int i 0; i len_image_feature; i){image_features_input[i] ptr_feat[i] / norm;}}unsafe void generate_text_feature(Liststring texts){ListListint text_token new ListListint(texts.Count);for (int i 0; i texts.Count; i){text_token.Add(new Listint());}for (int i 0; i texts.Count; i){tokenizer.encode_text(texts[i], text_token[i]);}if (text_token.Count * context_length text_tokens_input.Length){text_tokens_input new int[text_token.Count * context_length];}foreach (int i in text_tokens_input) { text_tokens_input[i] 0; }for (int i 0; i text_token.Count; i){if (text_token[i].Count context_length){Console.WriteLine(text_features index i ,bigger than context_length \n);continue;}for (int j 0; j text_token[i].Count; j){text_tokens_input[i * context_length j] text_token[i][j];}}int[] text_token_shape new int[] { 1, context_length };text_features_input new float[text_token.Count, len_text_feature];long[] text_tokens_input_64 new long[texts.Count * context_length];for (int i 0; i text_tokens_input_64.Length; i){text_tokens_input_64[i] text_tokens_input[i];}for (int i 0; i text_token.Count; i){input_tensor new DenseTensorlong(text_tokens_input_64, new[] { 1, 52 });input_container.Clear();input_container.Add(NamedOnnxValue.CreateFromTensor(text, input_tensor));//运行 Inference 并获取结果result_infer onnx_session.Run(input_container);// 将输出结果转为DisposableNamedOnnxValue数组results_onnxvalue result_infer.ToArray();// 读取第一个节点输出并转为Tensor数据result_tensors results_onnxvalue[0].AsTensorfloat();float[] text_feature_ptr results_onnxvalue[0].AsTensorfloat().ToArray();float norm 0.0f;for (int j 0; j len_text_feature; j){norm text_feature_ptr[j] * text_feature_ptr[j];}norm (float)Math.Sqrt(norm);for (int j 0; j len_text_feature; j){text_features_input[i, j] text_feature_ptr[j] / norm;}}}void softmax(float[] input){int length input.Length;float[] exp_x new float[length];float maxVal input.Max();float sum 0;for (int i 0; i length; i){float expval (float)Math.Exp(input[i] - maxVal);exp_x[i] expval;sum expval;}for (int i 0; i length; i){input[i] exp_x[i] / sum;}}int[] argsort_ascend(float[] array){int array_len array.Length;int[] array_index new int[array_len];for (int i 0; i array_len; i){array_index[i] i;}var temp array_index.ToList();temp.Sort((pos1, pos2) {if (array[pos1] array[pos2]){return -1;}else if (array[pos1] array[pos2]){return 0;}else{return 0;}});return temp.ToArray();}public ListDictionarystring, float input_text_search_image(string text, float[] image_features, Liststring imglist){int imgnum imglist.Count;Liststring texts new Liststring { text };generate_text_feature(texts);float[] logits_per_image new float[imgnum];for (int i 0; i imgnum; i){float sum 0;for (int j 0; j len_text_feature; j){sum image_features[i * len_text_feature j] * text_features_input[0, j]; //图片特征向量跟文本特征向量做内积}logits_per_image[i] 100 * sum;}softmax(logits_per_image);int[] index argsort_ascend(logits_per_image);ListDictionarystring, float top5imglist new ListDictionarystring, float(5);for (int i 0; i 5; i){int ind index[imgnum - 1 - i];Dictionarystring, float result new Dictionarystring, float();result.Add(imglist[ind], logits_per_image[ind]);top5imglist.Add(result);}return top5imglist;}public float[] generate_imagedir_features(string image_dir){imglist Common.listdir(image_dir);imgnum imglist.Count;Console.WriteLine(遍历到 imgnum 张图片);float[] imagedir_features new float[0];for (int i 0; i imgnum; i){string imgpath imglist[i];Mat srcimg Cv2.ImRead(imgpath);generate_image_feature(srcimg);imagedir_features imagedir_features.Concat(image_features_input).ToArray();srcimg.Dispose();}return imagedir_features;}} 下载 源码下载
http://www.zqtcl.cn/news/259269/

相关文章:

  • 杭州建网站企业seo营销工具
  • php旅游类网站开发wordpress 文章内
  • 企业管理外贸企业网站优化
  • 免费图纸网东莞百度快照优化排名
  • 南宁网站建设培训学校青海网站建设加q5299丶14602做词
  • 鱼台做网站多少钱wordpress pot
  • 招聘网站建设维护人员怎样自己开发一款软件
  • 上海网站制作怎么选泰安网红人物
  • 企业网站建设义乌南靖网站建设
  • 抖音电商网站建设如何制作app推广
  • 关键词的选择网站提示网站建设电销异议处理话术
  • 南京建设网站内容网站打开速度慢是否需要升级带宽
  • 内容类网站如何 流量厦门市建设局网站住房保障专栏
  • 朝城做网站公司网站内容建设要求age06
  • 云南省城乡建设培训中心网站备份wordpress网站
  • 快速建站公司地址vr哪家公司做得好
  • 网站空间怎么更换网站营销如何做
  • 制作单页网站要网址wordpress更新显示失败
  • 阿里巴巴网站建设公司设计网站制作
  • 泰安网站建设有哪些常见的cms网站程序有哪些
  • 九寨沟城乡建设官方网站深圳的互联网公司排名
  • app可视化开发工具seo网站推广服务
  • 临近做网站网络营销方式哪些?
  • 网站数据分析案例怎样在网上做广告
  • 网站页头图片怎么做几个版面的网站
  • 网站 f型网站建设 大公司
  • 做网站最好选什么语言百度域名服务器
  • 网站维护一般多久西宁的网站建设
  • 网站建设需要什么工具投诉百度最有效的电话
  • 做家政网站公司策划公司英文