用 Postgres 就好

duckdb 连接postgres 和 jdbc 的使用 DuckDB Foreign Data Wrapper for PostgreSQL是一个外数据包装器(FDW),旨在将PostgreSQL与DuckDB数据库文件连接起来。通过这一FDW,用户可以在PostgreSQL中直接操作DuckDB的数据,实现数据的无缝集成和高效处理。postgres扩展允许 DuckDB 直接从正在运行的 PostgreSQL 数据库实例读取和写入数据。DuckDB FDW的核心在于其外数据包装器的实现,它允许PostgreSQL通过标准的SQL接口访问DuckDB的数据。 阅读详情

原文地址 https://mccue.dev/pages/8-16-24-just-use-postgres

这一部分是实用建议,一部分是对读者的提问。 建议:当你正在写一个需要持久存储数据的新应用程序,就像大多数网络应用程序那样,你默认的选择应该是 Postgres。

*** 为什么不是 sqlite?**

sqlite 是一个相当不错的数据库,但它的数据存储在单个文件中。这意味着无论你的应用程序是什么,它都只运行在一台机器上,或者至少是一个共享文件系统上。如果你正在写桌面或移动应用,那就完美了。如果你正在写网站,可能就不太适合了。使用 sqlite 为网站服务有很多成功案例,但他们大多数人都自己搭建服务器和基础设施。像Heroku、Railway、Render 等 PaaS 通常希望你使用通过网络访问的数据库。放弃这些平台提供的一些好处并没有错,但请考虑是否值得为了 sqlite 的优点而放弃平台提供的自动数据库备份以及配置超过一台应用服务器的能力。

*** 为什么不是 DynamoDB, Cassandra, 或者 MongoDB?**

无论 Rick Houlihan 在哪里,我希望他过得愉快。我看了很多会议的演讲,但他 2018 年关于 DynamoDB 深度解析的可能是我最常看的一个。我知道你们中很少有人会去看一个小时长的演讲,但你真应该去看一下。这个非常好。它主要阐述的是与 DynamoDB 同类型的数据库 - 包括 Cassandra 和 MongoDB - 如果满足以下条件则表现出色:

  • 你事先完全清楚你的应用需要做什么;
  • 你事先完全清楚你将如何使用数据;
  • 你已知需要处理大量数据;
  • 你可以接受放弃某种程度上的一致性;

这是因为这种数据库基本上就是一个巨大的分布式哈希映射。不需要扫描整个数据库就能工作的唯一操作是通过分区键进行查找和利用排序键进行扫描。无论你需要做什么查询,你都需要在存储之前将这些知识编码到其中一个索引中。你想要存储用户并通过名字或姓氏来查找他们吗?那么你最好有一个看起来像 $ 的排序键。你的访问模式应该被内置到如何存储数据中去。如果您的访问模式发生了重大变化,您可能需要重新处理所有数据。 这很烦人,因为特别是对于 MongoDB,人们接触它时通常会被告知它是一种更「灵活」的数据库。 是的,你不需要给它提供架构图。是的,你可以直接把 untyped JSON 倾倒进集合里。不, 这并不算得上一种灵活型数据库。它只能说效率高而已。

使用关系数据库,你可以通过在表上添加一个或两个索引,从获取一个人的所有宠物转到获取所有宠物的主人。但对于这种类型的 NoSQL 来说,这可能是一项艰巨的任务。如果你需要运行分析查询,效果也不会很好。像「过去一个月有多少用户注册」这样的任意问题可以通过编写 SQL 查询轻松回答,如果你担心在处理客户流量的同一台机器上运行昂贵的查询,也许可以在只读副本上进行。这就超出了这种数据库能处理范围之外了。你需要将数据 ETL 出去才能处理它。如果你看到大学生或刚毕业生正在使用 MongoDB,请阻止他们。他们需要帮助。他们已经走错路了。

If you see a college student or fresh grad using MongoDB stop them. They need help. They have been led astray.

译者注,这句的原文扎心了。

*** 为什么不是 Valkey?**

以前被称为 Redis 的艺术家最为人所知的是它是一个高效的进程外缓存。你只需要计算一次昂贵的东西,然后把它放在 Valkey 里,这样你拥有的 5 个或更多 HTTP 服务器就不需要重新计算了。然而,你也可以将其作为主数据库使用。它将所有数据存储在 RAM 中,因此如果你这么做,速度会非常快。

但也明显存在以下问题:

  • 你只能拥有一定数量的 RAM。虽然你可以拥有比你想象中更多的 RAM,但与硬盘相比,它仍然相当有限。
  • 就像 DynamoDB 那样,你需要在如何建模数据上做出让步。

*** 为什么不是 Datomic?**

如果你已经知道这个,那么你可以得到一个五角星。Datomic 是一个 NoSQL 数据库,但它是关系型的。「预先设计」的问题不存在,并且它确实具有一些不错的属性。你不在表格中存储数据。所有的都是「实体-属性-值-时间」(EAVT)对。与其存储带有 id、名字和年龄的人,不如存储 1 :person/name “Beth” 和 1 :person/age 30。然后你的查询基于「通用」索引进行工作。在进行查询时,你不需要与写入者协调。您按照给定时间查询数据库。新数据,甚至删除(或者他们称之为“撤回”),并没有真正删除旧数据。

但是也存在一些重大问题:

  • 它只适用于 JVM 语言。
  • 除了 Clojure 这种相对小众的语言,其 API 表现糟糕。
  • 如果你构建的查询结构不佳,得到的错误信息会非常糟糕。
  • 脱离于整个 SQL 的工具集。

*** 为什么不是 XTDB?**

Clojure 的人们搞了很多数据库。XTDB 在精神上与 Datomic 相似,但是:

  • 它有一个 HTTP API,所以你不会被锁定在 JVM 上。
  • 它有两个可以查询的时间轴。「系统时间」- 记录插入的时间 - 和「有效时间」。
  • 它有一个 SQL API。

对它最大的反对点是:

  • 它是新的。其 SQL API 是去年突然出现的东西。它最近改变了整个存储模型。背后的公司能否在未来 10 年内生存下来?谁知道呢!

好的,这只是一个观点。我确信我能想到更多,但请把这个当作任何最近开发的数据库的典型。最佳预测某个东西将继续存在于未来的指标就是它已经存在了多久 (The best predictor something will continue to exist into the future is how long it has existed)。COBOL 已经存在了几十年,它可能会继续存在几十年。

如果你有持久存储,你希望得到尽可能长期的支持。你当然可以选择为你的应用程序选择一个较新或实验性质的数据库,但无论技术属性如何,那都是一个冒险的选择。这不应该成为你默认选项。

*** 为什么不是 Kafka?**

Kafka 是一个只能追加的日志。它可以处理 TB 级别的数据。这是一个非常好的只能追加的日志。如果你想做事件源类型的事情,有来自多个由人类团队维护的服务流入的数据,它工作得非常出色。

但是:

  • 在一定规模内,Postgres 中的表作为仅追加日志工作得非常好。
  • 你的产品可能并没有数百人在使用,也不会有 TB 级别的事件流入。
  • 弄一个 Kafka 消费者比你预期的要更容易出错。毕竟,你需要跟踪你在日志中的位置。
  • 即使由云提供商维护(而且有很好的托管 Kafka 服务),这也是另一块你需要监控的基础设施。

*** 为什么不是 ElasticSearch?**

您的产品的主要功能是否是搜索数据?

如果是,ElasticSearch 将为您提供一些真正的优势。你需要将你的数据 ETL 到其中,并管理整个过程,但 ElasticSearch 就是为搜索而构建的。它擅长搜索。

如果不是,Postgres 就足够了。稍微使用一些 ilike 和内置全文搜索对于大多数应用程序来说已经足够了。您总可以在以后添加一个专门的搜索功能。

*** 为什么不是 MSSQL 或者 Oracle?**

你应该真正问自己的问题是:这些值得价格标签吗?

我不仅指直接的许可成本,还有锁定成本。一旦你的数据在 Oracle DB 中,你将永远付费给 Oracle。你将不得不永远培训你的编码人员来适应它的特性。你将必须永远在企业功能和钱包之间做出选择。

我知道你很可能不会对 Postgres 提交补丁,所以我不会假装存在某种神奇的「开源力量」,但我认为如果没有非常具体的需求去选择专有数据库,那就没必要使用它。如果没有 MSSQL 中至关重要、无法离开的功能,就别用它了。

译者注,其实多少都有吧,比如 MSSQL 的 SQL Server Management Studio (SSMS) 还是很香的。

*** 为什么不是 MySQL ?**

这是我需要一些观众帮助的一个问题。

MySQL 是 Oracle 公司的产品。有些功能被锁定在他们的企业版中。在某种程度上,你会遇到和其他数据库相同的锁定问题。但免费版的 MySQL 也已经被广泛应用于各种事物中。它已经存在了很长时间,有很多人知道如何使用它。

我的问题是,我在职业生涯中只花了大约 6个月的时间来使用它。我真的不够了解它,无法全面地将其与 Postgres 进行比较。我确信它并非秘密地好到让我在告诉人们使用 Postgres 时是在忽悠他们,并且我记得曾经读过关于Postgres 通常如何更好地支持数据库强制约束的能力,但如果有人能在这里给我上一课,我也不介意。

*** 为什么不用一些 AI 向量数据库呢?**

大多数都是新的。记住使用新事物的风险。

AI 就像一个泡沫,虽然它能承重,但终究还是个泡沫。如果可以避免,就别在上面建房子。

即使你的业务是另一种 AI 骗局,你可能只需要导入 openai 就够了。

*** 为什么不是 Google Sheets?**

你说得对。我想不出有什么缺点。就它了。


💡 更多资讯,请关注 Bytebase 公号:Bytebase

postgres篇---docker安装postgres,python连接postgres数据库 阅读详情

相关推荐

Postgres的库postgres、template0和template1

查看数据库各字段值 以下是 pg_database 表中各个字段的解释:重点关注pg_database中的三个字段datname、datistemplate、datallowconn。template0 和template1都是模板数据库,postgres非模板数据库 使template0可连接 默认情况下,template模板数据库是不结束用户连接,但是可以通过update修改字段datallowconn值为t,使其可以接收用户连接 当修改了datallowconn字段为t之后,现在pslq命令可以登录

qiao2458的博客 547

Postgres正在蚕食数据库世界

更重要的是,它可以站在PostgreSQL的肩膀上,利用整个PG生态的联合力量(例如与PG Vector的混合搜索)与另一个专用数据库进行“不公平”竞争。然而,代价是冗余数据、过多的数据移动、分布式组件之间的数据值缺乏一致、专业技能的额外劳动力费用、额外的许可成本、有限的查询语言能力、可编程性和可扩展性、有限的工具集成、较差的数据完整性。例如,Hydra 发布了自己的包和 Docker 镜像,PostgresML 也是如此,每个都发布了带有自己的扩展且仅自己的扩展的 PostgreSQL 镜像。

极道Jdon的技术博客 1395

Docker 安装Postgres和PostGIS,并制作镜像

dcoker安装postgres和带postgis插件的数据库。

胡萝卜先生的进阶之路 2164

postgreSql版的occurs函数

返回一个字符表达式在另一个字符表达式中出现的次数。 重现vfp中的occurs函数 CREATE OR REPLACE FUNCTION public.occurs( "tcSearchExpression" character varying, "tcExpressionSearched" character varying) RETURNS integer LANG...

benson 770

Docker - postgres 数据库

文章目录Docker - postgres 数据库1、构建 postgres 镜像2、运行 postgres 镜像3、postgres 镜像的基础知识3、连接到 postgres 数据库 Docker - postgres 数据库 1、构建 postgres 镜像 拉取镜像 docker pull postgres 2、运行 postgres 镜像 docker run --name...

简简单单Onlinezuozuo 6530

比亚迪开放平台接口实战:车身状态监测与智能车联应用开发

本文详细介绍了如何利用比亚迪开放平台的车身状态接口进行智能车联应用开发。通过核心类BYDAutoBodyworkDevice,开发者可以安全获取车辆VIN、车门车窗状态、蓄电池电压、方向盘转角等实时数据,并利用监听器实现状态实时响应。文章提供了从SDK集成、接口调用到典型应用场景(如远程车况检查、车队管理)的完整实战指南,助力开发者快速构建基于比亚迪车辆数据的创新应用。

weixin_29176179的博客 728

Postgres MCP Quickstart

打开终端(PowerShell 或命令行),进入合适目录(如。镜像,耐心等待拉取和启动完成。,则数据库启动成功。

The cure for boredom is curiosity. This is the log of its adventures. 1343

mtk-drm初始化

mtk-drm初始化走读

zhexingsunba的博客 4939

为什么选择 deno-postgres?与 node-postgres、pq 的全面对比评测

在 Deno 生态里挑选一个合适的 **PostgreSQL 驱动**,是每个刚接触 Deno 的开发者都要面对的问题。**deno-postgres** 作为 Deno 官方社区最受欢迎的 PostgreSQL 驱动之一,凭借简洁的 API 和开箱即用的体验,正在被越来越多的人使用。本文将从运行环境、安装方式、查询体验、连接池、事务与安全认证等多个维度,把 deno-postgres 与 Nod

gitblog_00439的博客 733

ECC椭圆曲线加解密原理详解(配图)

椭圆曲线加解密原理详解 本文主要参照:ECC椭圆曲线详解(有具体实例)[1] 前言: 椭圆曲线(ECC)加密原理跟RSA加解密原理比起来,可真是晦涩难懂。拜读了大神Kalafinaian文章“ECC椭圆曲线详解(有具体实例)”,终于看到了参透的曙光。 由于原文中有微小的瑕疵,也为了便于阅读起来更加流畅,我重新整理了一下这篇文章。 为什么使用椭圆曲线加密算法? RSA的解决分解整数问题需要亚指数...

Mark的博客 7万+

SAP ABAP实战:手把手教你用BAPI_BILLINGDOC_CREATEMULTIPLE批量开票(附完整代码与避坑指南)

本文详细解析了SAP ABAP中BAPI_BILLINGDOC_CREATEMULTIPLE批量开票的全流程,包括参数配置、事务控制、错误处理及性能优化。通过实战案例和完整代码示例,帮助开发者高效处理大批量发票生成任务,避免常见陷阱,提升开发效率。

weixin_34101914的博客 267

gbrain Postgres Adopt 完全指南:引擎检测、Postgres 优先安装与安全迁移实战

> 引擎是大脑的基石:PGLite 是零配置的地板,Postgres 才是并发、多机访问和 1000+ 页面场景的归宿。本篇以 [skills/postgres-adopt/SKILL.md](https://link.gitcode.com/i/29c8f1800739bca16352fa0b9e1b9276) 为骨架,结合 [engine-status](https://link.gitcod

gitblog_00596的博客 1007

STM32+EC800M-CN 4G模块数据透传踩坑实录:从AT指令调试到花生壳内网穿透

本文详细介绍了STM32与移远EC800M-CN 4G模块的数据透传实现过程,包括硬件连接、AT指令调试、TCP连接建立以及花生壳内网穿透配置。通过实战案例和代码示例,帮助开发者快速解决4G通信模块在物联网应用中的常见问题,提升数据传输稳定性。

weixin_42715608的博客 328

Postgres容器使用

下载postgres镜像 $ sudo docker pull postgres 启动postgres容器 $ sudo docker run --name mypostgres -e POSTGRES_PASSWORD=Letmein -d -p 5432:5432 postgres 上面命令会启动一个名为mypostgres的容器,并且设置postgres用户的密码为Letmein。 如果在启动容器的时候需要执行一些初始化操作,我们可以写一些脚本(比如:.sh或者.sql),然后放到scripts文

kongxx的专栏 788

告别配置噩梦:用Vcpkg三行命令为Easy3D自动安装Boost、CGAL和Qt(VS2022实测)

本文详细介绍了如何使用Vcpkg工具在VS2022环境下为Easy3D项目一键安装Boost、CGAL和Qt等依赖库,解决传统手动配置的复杂性问题。通过三行简单命令即可自动完成下载、编译和路径配置,大幅提升开发效率,特别适合C++开发者快速搭建3D图形开发环境。

weixin_42525582的博客 211

Python 神经计算实训 实训答案分享

【代码】Python 神经计算实训 实训答案分享。

2403_89314916的博客 352

Docke安装Postgres

离线安装DOCKER 下载离线安装DOCKER文件, 百度云盘地址: 解压上述的安装包并拷备到/use/bin下 tar -zxvf docker cp ./docker/* user/bin 启动docker docker & 当看到 API…lister便 是启动成功 如果可访问公网,即可通过docker seach 查找并安装 不可访问公网时,离线拷备 通过 docker load进...

傲视苍穹 525

前端技能树,面试复习第 54 天—— 手写代码:情景题

前端修罗场提供全网最专业的前端优质文章与社区服务,为应届生,初中级前端工程师提供全面、优质的面试服务、技能提升、职场解惑服务!内容包含:前端面试辅导,前端面试题,前端交流,前端答疑,前端基础知识,前端知识体系,技能树搭建,Javascript,CSS,CSS3,HTML,React,Vue,小程序,前端简历,职业交流,远程工作,英文交流,英文提升,外企,互联网,国企,大厂,牛客面试题,掘金面试题,面经,优质前端文章分享...

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 986

postgres 的使用

- 授权 test 用户 test_chema 下的所有表,增删改查权限。-- 授权 select_group 组给 user_test 用户。-- 授权 t1 表查询权限 给角色 select_group。-- 创建schema test2 授权给 test1 用户。-- 将test_schema的拥有者设置为test用户。-- 创建schema 默认为当前用户。--修改将属主为 test 的表分配给 test2。-- 进入schema。-- 进入test 库。-- 删除属于 test1 的表。

qishiheyongshi的专栏 1559

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Webiny Headless CMS 的 Postgres 存储研究:从纯 Postgres 到 Postgres + OpenSearch 双引擎架构的设计决策

Webiny 是一个开源、可自托管的 AWS 无服务端(Lambda / DynamoDB / S3)CMS 平台。本文以 Webiny 仓库中 [Postgres 存储研究系列文档](https://link.gitcode.com/i/6898643ebf16ab220da82eb89e770e3a) 为主线,完整还原该团队为 Headless CMS 引入 Postgres 存储所做的前期调

gitblog_00922的博客 427

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

从SQLite到Postgres:Instatic数据库无缝迁移指南

Instatic作为一款现代化的自托管视觉CMS,支持SQLite和Postgres两种数据库引擎。随着项目规模增长,将数据库从SQLite迁移到Postgres能显著提升性能和可靠性。本文将详细介绍迁移的完整流程,帮助你实现数据的无缝过渡。 ## 为什么选择Postgres?迁移前的准备工作 SQLite适合小型部署和开发环境,而Postgres则为生产环境提供更强大的支持: - 支持多用户

gitblog_00989的博客 1081

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

gbrain 引擎采用实战:用 postgres-adopt 技能从 PGLite 平稳迁移到 Postgres

> 本篇指南围绕开源仓库 gbrain 中的 `postgres-adopt` 技能([plugin/skills/postgres-adopt/SKILL.md](https://link.gitcode.com/i/53d7e85dc65331d12e9327213b4d782b))展开,它回答了 Agent 大脑(brain)最关键的一个问题:"我当前跑在哪个引擎上?"——PGLite(零配

gitblog_01180的博客 447

利用ADODB联结POSTGRES

在LINUX中PHP和POSTGRES是被经常使用的开发数据库可网页的工具,如何使PHP联接到POSTGRES后端数据库是在开发网站中需要解决的问题,本文以一个示例程序告诉您如何利用ADODB函数进行联接;首先, 请安装POSTGRES:在DEBIAN中,安装是很简单的:$>apt-get install psql就可以将POSTGRES安装在您的电脑中了;安装APACE2:$>apt-get i

cg111的专栏 1082

会呼吸的电量环:Halo Battery 托盘图标渲染与充电动画的 Python 实现

Halo Battery(仓库名 HaloBattery)是一款运行在 Windows 系统托盘里的电池指示工具,它把 2.4 GHz 鼠标、耳机和蓝牙设备的电量画成一个个小圆环:环内填充比例代表电量,快没电时变琥珀色、低于阈值变红色,而一旦开始充电,圆弧就会变成绿色并缓慢"呼吸"。本文带你用通俗的方式看懂这套 **Halo Battery 托盘图标渲染** 背后的 **Python 实现**:它

gitblog_00954的博客 470

修改postgres密码

1. 修改PostgreSQL数据库默认用户postgres的密码 PostgreSQL数据库创建一个postgres用户作为数据库的管理员,密码随机,所以需要修改密码,方式如下: 步骤一:登录PostgreSQL 1 sudo-u postgres psql 步骤二:修改登录PostgreSQL密码 1 ALTER...

嘿,逮到一只大码农 5207

Postgres的安装可能遇到的问题(POSTGRES无法启动,端口号5423)

<br />    本人的机子环境是WINDOWS7,XP也可以类似的照着做。<br />    最常见的遇到的问题是POSTGRES无法启动的问题,“本地计算机POSTGRES服务启动后停止。(后面还有一段话,我忘了)”类似的错误提醒的解决方案是<br />    检查防火墙是否允许POSTGRES与网外联系。<br />    可以从控制面板打开防火墙,然后点击“允许程序和功能通过windows7防火墙”添加要添加的程序就可以了。<br />    找到pgsql/bin/postgres.exe,添加

scu_zhongxq的专栏 3338
上一篇: 一个人的 SaaS,九年
下一篇: GUI / GitOps / API: 用 Bytebase 实现 SQL 审核
Bytebase
博客等级 码龄5年 1348粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值