
基础学习
文章平均质量分 67
oceanstonetree
代码爱好者。地质和石油类专业,喜欢编程。目前从事地质建模+人工智能的研发工作。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【翻译转载】API设计那些事
当需要多人或多团队协作写软件时,API设计是面临的重要问题。最近看API设计的书([美]Martin Reddy著刘晓娜 臧秀涛林健 译),其中反复引用这篇文献,感觉不错,有必要分享。翻译 2022-06-11 19:23:22 · 320 阅读 · 0 评论 -
C++三法则和五法则的实例测试
带只针的模板类,实现了c++11的五法则,即复制构造函数,赋值操作符,析构函数,移动构造函数,移动操作符。作为一个例子,可以参考。原创 2022-06-06 14:13:17 · 538 阅读 · 0 评论 -
C + + 编码中减少内存缺陷的方法和工具
编码规范检查的工具有:CodeWizard,PC-lint等。使用 Purify 和 Insure + + 来查找运行时内存缺陷。翻译 2022-02-15 21:48:45 · 884 阅读 · 0 评论 -
9个C++版本的数据计算库
常用的9个c++数值计算库,各有优点。原创 2022-01-27 09:24:57 · 2385 阅读 · 0 评论 -
图像分割技术
最近看了图像分割的基础内容,希望对读者有用原创 2022-01-18 20:47:44 · 6529 阅读 · 1 评论 -
c++矩阵数据的二进制读写(序列化和反序列化)
c++二维 矩阵数据的二进制的序列化和反序列化原创 2021-11-22 14:35:12 · 1163 阅读 · 0 评论 -
统计指定后缀文件的代码行数
通过递归的方式获取文件夹内指定后缀类型所有文件的行数,用于统计代码行数import osdef getFileNames(path, list_name, postfx): for file in os.listdir(path): file_path = os.path.join(path, file) if os.path.isdir(file_path): getFileNames(file_path, list_name, p原创 2021-07-08 14:55:44 · 363 阅读 · 0 评论 -
初步完成的c++二维矩阵容器
小小的二维矩阵,用到了模板、智能指针,列表等#include <iostream>#include <memory>#include <vector>using namespace std;template<typename T>class Array2D {public: Array2D() {}; Array2D(int m, int n, T value):_m(m),_n(n) { grid =.原创 2021-07-01 17:57:47 · 370 阅读 · 0 评论 -
c调用C++的类成员函数
1、定义c++类CppClass.h文件//CppClass.h#pragma onceclass CppClass{public: CppClass(); ~CppClass(); int sum(int a, int b);};CppClass.cpp文件,包括类方法,和c封装函数实现//CppClass.cpp#include "CppClass.h"#include "CallCppFunc.h"CppClass::CppClass(){}原创 2021-04-10 15:13:53 · 1252 阅读 · 4 评论 -
ArrayFire函数列表
ArrayFire矩阵运算库提供了258个函数用来处理各种运算。涵盖的类型包括:数学函数https://arrayfire.org/docs/group__mathfunc__mat.htm线性代数https://arrayfire.org/docs/group__linalg__mat.htm信号处理https://arrayfire.org/docs/group__signal__mat.htm统计学https://arrayfire.org/docs/group__s.原创 2021-03-31 17:03:29 · 766 阅读 · 0 评论 -
win10下linux常用命令
1、wsl2条件下使用图形化界面安装VcXsrv Windows X Serverhttps://techcommunity.microsoft.com/t5/windows-dev-appconsult/running-wsl-gui-apps-on-windows-10/ba-p/1493242https://sourceforge.net/projects/vcxsrv/每次都需要在win10上打开xming,设置not access control设置命令export DISPLAY="原创 2021-01-21 13:56:58 · 296 阅读 · 0 评论 -
高性能可扩展线性求解算法库Hypre
目录2 安装 hypre¶3 使用Hypre3.1 选择概念接口3.2 编写代码4 实例测试5 文档说明https://nixbit.com/software/hypre-review/1 简介Hypre是由劳伦斯利弗莫尔国家实验室开发并进行开源。劳伦斯利弗莫尔国家实验室(LLNL)成立于1952年冷战高峰时期,旨在通过推进核武器科学和技术来满足紧迫的国家安全需求。在其历史上,实验室通过其才华横溢和敬业的员工队伍和世界一流的研究能力,以科学和技术创新的传统,预测、开发和提原创 2021-01-16 22:50:21 · 5293 阅读 · 0 评论 -
模板数值工具包(Template Numerical Toolkit, NTT)
该库由美国国家标准与技术研究所的数学与计算科学学部开发https://math.nist.gov/tnt/简介模板数值工具包(TNT)是数值对象的接口和参考实现的集合,可用于C ++中的科学计算。 该工具包定义了用于数值应用程序中的基本数据结构的接口,例如多维数组和稀疏矩阵。 该软件包的目的是提供可重用的软件组件,以解决C ++代码的许多可移植性和维护性问题。相比于目前常用的eigen,这个库更简单,对三维数据的支持更好。 TNT提供了TNT组件的接口和实现之间的区别。 例如,有一个用于二...原创 2021-01-16 21:41:51 · 490 阅读 · 0 评论 -
基于Cuda的开源张量计算库ArrayFire
基于Cuda的开源张量计算库ArrayFire1、ArrayFire介绍关于ArrayFire ArrayFire是一个高性能的软件库,可通过易于使用的API进行并行计算。 其基于数组的功能集使并行编程更易于访问。 安装ArrayFire您可以使用Windows,OSX或Linux的二进制安装程序安装ArrayFire,也可以从源代码下载它:Windows,OSX和Linux的二进制安装程序从源代码构建易于使用数组对象非常简单。 基于数组的符号有效地表达了类似于可读数学符号的计算...原创 2021-01-10 17:18:29 · 1440 阅读 · 0 评论 -
ArrayFire机器学习—遗传算法
ArrayFire机器学习—遗传算法、遗传算法基本原理遗传算法(Genetic Algorithm,GA)是借鉴生物界的进化规律(适者生存,优胜劣汰,遗传机制)演化而来的随机搜索方法。它是由美国的J.Holland教授1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的基本运算过程如下:a)初始化:设置进化代数计.翻译 2021-01-10 12:01:03 · 348 阅读 · 0 评论 -
基于c++ amp的gpu编程
目录摘要:1 简介2 性能改进2.1 异构平台2.2 gpu架构2.3 通过平行的性能改进3 gpu编程架构3.1 opencl3.2 cdua3.3 c++ amp4 一个c++ amp解决方案5 结论参考资料http://ceur-ws.org/Vol-1746/paper-23.pdf摘要:如今,程序员面临的挑战是使他们的程序变得更好。“更好”一词意味着更简单,可移植且执行速度更快。 异构计算是计算机科学领域的一种新方法。..原创 2020-12-21 15:17:55 · 2064 阅读 · 0 评论 -
调用c++标准库的algorithm中的sort对vector中的自定义类型进行排序
调用c++标准库的algorithm中的sort对vector中的自定义类型进行排序#include <iostream>#include <vector>#include <set>#include <tuple>#include <algorithm>#include <random>#include <chrono>using namespace std;class ValueIJ.原创 2020-11-18 23:13:03 · 493 阅读 · 0 评论 -
dune数值计算算法库
目录1、Dune简介2、Dune安装3 、第一个Dune实例应用helloworld本文对dune进行了简单介绍,说明了安装方法(只能在linux或win10下的wsl中安装),以及通过helloworld的简单例子进行了环境验证,下次根据教程演习如果进行泊松方程创建和求解。1、Dune简介DUNE (Distributed and Unified Numerics Environment),分布和统一数值解环境,是一种求解偏微分方程的基于网格的方法(PDE)的模块化的工具箱。DUN原创 2020-11-16 20:19:22 · 1238 阅读 · 0 评论 -
基于FreeFEM++的有限元编程--3
目录前言1、泊松方程的描述2、结果保存和读取3、更多网格生成方法4、边界条件介绍5、总结,前言FreeFem++是通过有限元方法求解PDE的免费软件,该软件由法国第六大学开发,可以运行在windows、linux和Mac系统上。可以进行网格生成、自动建立有限元模型、整合了各类线性求解器、能适用于与二维和三维问题,可以生成图片、文字和文件作为计算结果的输出。使用方法是编写脚本文件、保存为后缀为.edp为后缀的文本文件,运行软件调用该脚本文件即可。用网上找到的材料,通过六类方原创 2020-11-14 22:57:44 · 5944 阅读 · 2 评论 -
opencv c++中的9种方式创建矩阵Mat
//1 create a mat with random values//2 create zeors or ones Mat//3 common attribute of Mat//4 access element of Mat by at//5 access element of Mat by ptr//6 access element of Mat by ptr and is continous//7 get one row or one col of a Mat//...原创 2020-11-12 15:58:20 · 4165 阅读 · 1 评论 -
基于celeba数据集和pytorch框架实现dcgan的人脸图像生成
参考pytorch的官方教程实现了dcgan网络,对官方的实例进行了如下修改。(1)把原来的script修组织成了类的形式,直接复制官方的代码无法直接运行,通过类的形式管理数据和函数更加方便(2)添加了训练过程的图形化保存,官方给的实例中是pyplot的show的形式显示结果,改成了savefig的方式保存图像,训练过程的图像保存在monitor文件夹(3)调用imagemagick的方式保存gif图,(4)dcgan训练celeba数据集,该数据集下载后放在和dcgan.py相同的目录下,原创 2020-10-18 21:53:38 · 3270 阅读 · 14 评论 -
500种对抗生成网络
这里列出了印度一个大神整理的对抗生成网络GAN公园,里面列出了几乎所有的对抗生成网络。3D-ED-GAN -Shape Inpainting using 3D Generative Adversarial Network and Recurrent Convolutional Networks 3D-GAN -Learning a Probabilistic Latent Space of Object Shapes via 3D Generative-Adversarial Modelin...转载 2020-10-12 21:08:42 · 826 阅读 · 0 评论 -
Rust语言入门练习1
c++又很多库,特别是关于工程计算方面的,但是c++用起来太难了,特别是内存管理,很难预测它什么时候崩溃,什么时候内存爆满,内存释放问题很让人头疼。Rust语言试图解决c++的这个内存管理的弊端,但是处于对效率及底层处理的要求,放弃了c#和java甚至go那样基于垃圾回收器的处理方式,而是采用了全新的一套处理方式,很有意思。这是个兼顾效率和安全的编程语言,不经可以用在系统编程,也可以用来web编程,很有发展前景。下面这个教程中的例子,是个猜字游戏,展示了rust语言的一些主要特性。use st原创 2020-06-08 21:44:55 · 802 阅读 · 0 评论 -
IBM推出的张量计算库Ocean Tensor Library
矩阵和张量运算构成了广泛领域和应用的基础,并且在许多情况下构成了整体计算复杂性的重要部分。通用gpu能够加速其中许多操作并使其他操作成为可能,这导致了这些设备的广泛适应性。为了充分利用张量运算的计算能力,需要专门的软件,目前有几个包(主要是在深度学习领域)包含了CPU和GPU上的张量运算。然而,支持一般张量运算的独立框架仍然缺失。在本文中,我们填补了这一空白,并提出了海洋张量库:一个模块化的张量支持包,它被设计为在各种设备类型上需要密集张量操作的应用程序的基础层。API经过精心设计,功能强大,可...翻译 2020-06-01 20:22:55 · 906 阅读 · 0 评论 -
基于Forge的af::array数组可视化
Arrayfire 作为一个库,旨在为高性能、并行和 GPU 计算提供一个健壮且易于使用的平台。作为Opengl 可视化库, Forge 的目标是提供同样健壮的可视化,可以在 Arrayfire 数据结构和 OpenGL 上下文之间进行互操作,方便显示计算结果。Arrayfire 提供了包装器函数,这些函数被设计成一个简单的接口,用于数据af::array的可视化。 这些函数执行各种互操作任务。 其中一个特别之处在于,我们不必浪费时间将数据从 GPU 复制到主机再重新格式化到 GPU,而是可以直接从翻译 2020-05-26 17:53:29 · 454 阅读 · 0 评论 -
GsTL介绍
1、为什么要有GsTL简单来讲GsTL(Geostatistal Template Library)就是大名鼎鼎的GSLIB的C++版本,由于GSLIB是fortran编写的,越来越不适应当代变成的需要,因此斯坦福大学的SCRF小组就开发了GsTL,并将其开源,它仅包含头文件,使用起来很方便。2、GsTL的总体设计2.1 GsTL的组成按照GSLIB的传统,GsTL同样也包含构建模...原创 2020-05-05 23:38:52 · 1965 阅读 · 1 评论 -
代数多重网格算法库AMGCL
AMGCL是仅包含头文件的C ++库,用于使用代数多重网格(AMG)方法求解大型稀疏线性系统。 AMG是求解方程组的最有效迭代方法之一,例如,通过在非结构化网格上离散化PDE产生。 该方法可以用作各种计算问题的黑盒求解器,因为它不需要有关基础几何的任何信息。 AMG通常不用作独立求解器,而是用作迭代求解器中的前置条件(例如,共轭梯度,BiCGStab或GMRES)。AMGCL在CPU上构建AM...原创 2020-04-26 08:21:00 · 4087 阅读 · 0 评论 -
Java GUI学习之入门1
Java提供的gui包:Java.awt包,主要提供字体/布局管理器Java.swing包,主要提供各种组件(窗口/按钮/文本框)Java.awt.event包,事件处理, 后台功能的实现。Swing提供的主要组件:(1)顶层容器:常用的有JFrame(普通窗口),JDialog(对话框)(2)中间容器:JPanel(轻量级面板容器组件),JOptionPane(选项...原创 2019-09-05 23:52:19 · 211 阅读 · 0 评论