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

开源库存管理系统InvenTree的安装

在这里插入图片描述

本文是应网友 shijie880500 要求折腾的;

什么是 InvenTree ?

InvenTree 是一个开源的库存管理系统,提供强大的低级别库存控制和零件跟踪。InvenTree 系统的核心是 Python/Django 数据库后端,它提供了一个管理界面(基于 web)和一个 REST API,用于与外部接口和应用程序交互。强大的插件系统为自定义应用程序和扩展提供支持。

前期准备

在群晖上以 Docker 方式安装。因为涉及到多个容器,所以采用了 docker-compose 安装

老苏是按生产环境搭建,因为开发模式只能用 localhost 访问,所需的文件都来自于官方的 production 目录:https://github.com/inventree/InvenTree/tree/master/docker/production

版本选择的是 InvenTree 的最新稳定版本stable ,对应的版本为 0.12.8

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件

version: "3.8"# Docker compose recipe for a production-ready InvenTree setup, with the following containers:
# - PostgreSQL as the database backend
# - gunicorn as the InvenTree web server
# - django-q as the InvenTree background worker process
# - nginx as a reverse proxy
# - redis as the cache manager (optional, disabled by default)# ---------------------
# READ BEFORE STARTING!
# ---------------------# -----------------------------
# Setting environment variables
# -----------------------------
# Shared environment variables should be stored in the env.txt file
# Changes made to this file are reflected across all containers!
#
# IMPORTANT NOTE:
# You should not have to change *anything* within this docker-compose.yml file!
# Instead, make any changes in the env.txt file!# ------------------------
# InvenTree Image Versions
# ------------------------
# By default, this docker-compose script targets the STABLE version of InvenTree,
# image: inventree/inventree:stable
#
# To run the LATEST (development) version of InvenTree,
# change the INVENTREE_TAG variable (in the env.txt file) to "latest"
#
# Alternatively, you could target a specific tagged release version with (for example):
# INVENTREE_TAG=0.7.5
#services:# Database service# Use PostgreSQL as the database backendinventree-db:image: postgres:13container_name: inventree-dbexpose:- ${INVENTREE_DB_PORT:-5432}/tcpenvironment:- PGDATA=/var/lib/postgresql/data/pgdb- POSTGRES_USER=${INVENTREE_DB_USER:?You must provide the 'INVENTREE_DB_USER' variable in the env.txt file}- POSTGRES_PASSWORD=${INVENTREE_DB_PASSWORD:?You must provide the 'INVENTREE_DB_PASSWORD' variable in the env.txt file}- POSTGRES_DB=${INVENTREE_DB_NAME:?You must provide the 'INVENTREE_DB_NAME' variable in the env.txt file}volumes:# Map 'data' volume such that postgres database is stored externally- inventree_data:/var/lib/postgresql/data/restart: unless-stopped# redis acts as database cache manager# only runs under the "redis" profile : https://docs.docker.com/compose/profiles/inventree-cache:image: redis:7.0container_name: inventree-cachedepends_on:- inventree-dbprofiles:- redisenv_file:- .envexpose:- ${INVENTREE_CACHE_PORT:-6379}restart: always# InvenTree web server service# Uses gunicorn as the web serverinventree-server:# If you wish to specify a particular InvenTree version, do so hereimage: inventree/inventree:${INVENTREE_TAG:-stable}container_name: inventree-server# Only change this port if you understand the stack.# If you change this you have to change:# - the proxy settings (on two lines)# - only change the exposed port - eg `1338:8000` if you want to expose the server on port 1338expose:- 8000depends_on:- inventree-dbenv_file:- .envvolumes:# Data volume must map to /home/inventree/data- inventree_data:/home/inventree/datarestart: unless-stopped# Background worker process handles long-running or periodic tasksinventree-worker:# If you wish to specify a particular InvenTree version, do so hereimage: inventree/inventree:${INVENTREE_TAG:-stable}container_name: inventree-workercommand: invoke workerdepends_on:- inventree-serverenv_file:- .envvolumes:# Data volume must map to /home/inventree/data- inventree_data:/home/inventree/datarestart: unless-stopped# nginx acts as a reverse proxy# static files are served directly by nginx# media files are served by nginx, although authentication is redirected to inventree-server# web requests are redirected to gunicorn# NOTE: You will need to provide a working nginx.conf file!inventree-proxy:image: nginxcontainer_name: inventree-proxydepends_on:- inventree-serverenv_file:- .envports:# Default web port is 1337 (can be changed in the env.txt file)- ${INVENTREE_WEB_PORT:-1337}:80volumes:# Provide nginx configuration file to the container# Refer to the provided example file as a starting point- ./nginx.prod.conf:/etc/nginx/conf.d/default.conf:ro# nginx proxy needs access to static and media files- inventree_data:/var/wwwrestart: unless-stoppedvolumes:# Persistent data, stored external to the container(s)inventree_data:driver: localdriver_opts:type: noneo: bind# This directory specified where InvenTree data are stored "outside" the docker containersdevice: ${INVENTREE_EXT_VOLUME:?You must specify the 'INVENTREE_EXT_VOLUME' variable in the env.txt file!}

相比官方的 docker-compose.yml,老苏做了 2 处修改,但都不是必须的,你可以直接用官方原版的

  • nginx 的版本,官方用的是 nginx:stable,老苏为了少下载一个镜像,改为了 nginx,也就是 nginx:latest,因为机器上已经有了,这个不是必须要改的;
  • 给每个容器增加了 container_name,只是为了看着舒服,同样也不是必须的;

nginx.prod.conf

将下面的内容保存为 r-compose.yml 文件,不需要做任何改动

server {# Listen for connection on (internal) port 80# If you are exposing this server to the internet, you should use HTTPS!# In which case, you should also set up a redirect from HTTP to HTTPS, and listen on port 443# See the Nginx documentation for more detailslisten 80;real_ip_header proxy_protocol;location / {proxy_set_header      Host              $http_host;proxy_set_header      X-Forwarded-By    $server_addr:$server_port;proxy_set_header      X-Forwarded-For   $remote_addr;proxy_set_header      X-Forwarded-Proto $scheme;proxy_set_header      X-Real-IP         $remote_addr;proxy_set_header      CLIENT_IP         $remote_addr;proxy_pass_request_headers on;proxy_redirect off;client_max_body_size 100M;proxy_buffering off;proxy_request_buffering off;# Do not touch this unless you have a specific reason - this and the docker-compose need to matchproxy_pass http://inventree-server:8000;}# Redirect any requests for static fileslocation /static/ {alias /var/www/static/;autoindex on;# Caching settingsexpires 30d;add_header Pragma public;add_header Cache-Control "public";}# Redirect any requests for media fileslocation /media/ {alias /var/www/media/;# Media files require user authenticationauth_request /auth;# Content header to force downloadadd_header Content-disposition "attachment";}# Use the 'user' API endpoint for authlocation /auth {internal;proxy_pass http://inventree-server:8000/auth/;proxy_pass_request_body off;proxy_set_header Content-Length "";proxy_set_header X-Original-URI $request_uri;}}

.env

将下面的内容保存为 .env 文件

# InvenTree environment variables for a postgresql production setup# Location of persistent database data (stored external to the docker containers)
# Note: You *must* un-comment this line, and point it to a path on your local machine# e.g. Linux
INVENTREE_EXT_VOLUME=/volume1/docker/inventree/data# e.g. Windows (docker desktop)
#INVENTREE_EXT_VOLUME=c:/Users/me/inventree-data# Default web port for the InvenTree server
INVENTREE_WEB_PORT=1337# Ensure debug is false for a production setup
INVENTREE_DEBUG=False
INVENTREE_LOG_LEVEL=WARNING# InvenTree admin account details
# Un-comment (and complete) these lines to auto-create an admin acount
INVENTREE_ADMIN_USER=laosu
INVENTREE_ADMIN_PASSWORD=123456
INVENTREE_ADMIN_EMAIL=wbsu2003@gmail.com# Database configuration options
# Note: The example setup is for a PostgreSQL database
INVENTREE_DB_ENGINE=postgresql
INVENTREE_DB_NAME=inventree
INVENTREE_DB_HOST=inventree-db
INVENTREE_DB_PORT=5432# Database credentials - These must be configured before running
# Uncomment the lines below, and change from the default values!
INVENTREE_DB_USER=pguser
INVENTREE_DB_PASSWORD=pgpassword# Redis cache setup (disabled by default)
# Un-comment the following lines to enable Redis cache
# Note that you will also have to run docker-compose with the --profile redis command
# Refer to settings.py for other cache options
#INVENTREE_CACHE_HOST=inventree-cache
#INVENTREE_CACHE_PORT=6379# Options for gunicorn server
INVENTREE_GUNICORN_TIMEOUT=90# Enable custom plugins?
INVENTREE_PLUGINS_ENABLED=False# Run migrations automatically?
INVENTREE_AUTO_UPDATE=False# Image tag that should be used
INVENTREE_TAG=stableCOMPOSE_PROJECT_NAME=inventree-production

参数说明:

  • 基本设置
    • INVENTREE_EXT_VOLUME:映射为卷的本地目录,需要根据自己的目录进行修改;
    • INVENTREE_WEB_PORT:访问时的 Web 端口,本地不冲突就可以;
    • INVENTREE_DEBUG:调试模式,默认 False 为关闭;
    • INVENTREE_LOG_LEVEL:日志级别;

【建议】:前两项需要根据自己的情况就行修改;

  • 管理员设置
    • INVENTREE_ADMIN_USER:管理员账号;
    • INVENTREE_ADMIN_PASSWORD:管理员密码;
    • INVENTREE_ADMIN_EMAIL:管理员邮件地址;

【建议】:三项都需要根据自己的情况进行修改;这里如果不设置,就需要用命令行去单独创建管理员;

  • 数据库设置
    • INVENTREE_DB_ENGINE:数据库类型,除了 postgresql 外,还支持 mysql
    • INVENTREE_DB_NAME:数据库库名;
    • INVENTREE_DB_HOST:数据库主机;
    • INVENTREE_DB_PORT:数据库端口;
    • INVENTREE_DB_USER:数据库用户;
    • INVENTREE_DB_PASSWORD:数据库密码;

【建议】:只要修改密码就可以的,其他的不建议修改;

  • Redis 设置
    • INVENTREE_CACHE_HOSTRedis 主机,默认本行被注释,在数据库初始化之前,一定不要取消注释;
    • INVENTREE_CACHE_PORTRedis 端口,默认本行被注释,在数据库初始化之前,一定不要取消注释;

【强烈建议】:不管你后续是否要使用Redis在数据库初始化之前,一定不要取消注释,否则会报错的,切记!切记!

在这里插入图片描述

  • 其他
    • INVENTREE_GUNICORN_TIMEOUT:服务器超时设置;
    • INVENTREE_PLUGINS_ENABLED:是否启用自定义插件;
    • INVENTREE_TAG:镜像的 tag 的版本,不建议修改;
    • COMPOSE_PROJECT_NAME:默认就可以;

【建议】:保持默认就可以了;

更多的参数说明,请看官方文档:https://docs.inventree.org/en/stable/start/config/

以上建议是给和老苏一样的小白用户的,高手请忽略

命令行安装

上传文件

文件准备好之后,依次执行下面的命令

# 新建文件夹 inventree 和 子目录
mkdir -p /volume1/docker/inventree/data# 进入 inventree 目录
cd /volume1/docker/inventree# 将 docker-compose.yml 、.env 、 nginx.prod.conf 放入当前目录

现在的目录

在这里插入图片描述

初始化

# 初始化数据库
docker-compose run inventree-server invoke update

这行初始化命令执行了以下步骤:

  • 确保安装了所需的 python
  • 创建一个新的(空)数据库
  • 执行所需的架构更新以创建所需的数据库表
  • 更新翻译文件
  • 将所有必需的静态文件收集到可由 nginx 提供服务的目录中

在这里插入图片描述

一定不要先注释 .env 中的 redis 设置,否则最后 Running InvenTree database migrations... 时会有错误

redis.exceptions.ConnectionError: Error -2 connecting to inventree-cache:6379. Name or service not known.

在这里插入图片描述

正常应该是下面这样的

在这里插入图片描述

创建管理员

  1. 已在 .env 中指定管理员帐户详细信息,可以跳过这一步;
  2. 为了安全起见,请确保在首次运行后从 .env 文件中删除管理员帐户凭据;
# 创建管理员账号
docker-compose run inventree-server invoke superuser

启动 Docker 容器

现在可以开始启动了

# 一键启动(不带 redis)
docker-compose up -d

如果需要 Redis 服务 ,首先修改 .env 中的 redis 设置,取消 INVENTREE_CACHE_HOSTINVENTREE_CACHE_PORT 前面的注释

如果你取消了 redis 注释,但是执行的又是不带 redis 的一键启动,也是会存在错误的,或导致容器不断重启;

在这里插入图片描述

然后再执行下面的启动命令

# 一键启动(带 redis)
docker-compose --profile redis up -d

不出意外的话,我们在 Docker 管理器中应该看到下面这样

在这里插入图片描述

inventree-production_inventree-server_run_2a703d49eef5 是初始化数据库的时候生成的,看着不爽的话,可以删掉

运行

在浏览器中输入 http://群晖IP:1337 就能看到登录界面

用我们前面设置的管理员账号、密码登录

在这里插入图片描述

主界面默认有部分中文显示,显然翻译程度还不高

不知道初始化时最一行显示的 InvenTree translation coverage: 27% 是不是指的中文翻译;

在这里插入图片描述

如果看到下面的提示,只要重启 inventree-server 容器即可

Server Restart Required
A configuration option has been changed which requires a server restart. Contact your system administrator for further information

在这里插入图片描述

其他

一些其他可能会用到的命令

# 一键删除
docker-compose down# 将数据库导出为 JSON
docker-compose run inventree-server invoke export-records -f /volume1/docker/inventree/data/data.json# 删除卷
docker volume rm -f inventree_data

参考文档

InvenTree
地址:https://github.com/inventree

InvenTree
地址:https://inventree.org

InvenTree - InvenTree Documentation
地址:https://docs.inventree.org

Docker Production Server - InvenTree Documentation
地址:https://docs.inventree.org/en/stable/start/docker_prod/

相关文章:

开源库存管理系统InvenTree的安装

本文是应网友 shijie880500 要求折腾的; 什么是 InvenTree ? InvenTree 是一个开源的库存管理系统,提供强大的低级别库存控制和零件跟踪。InvenTree 系统的核心是 Python/Django 数据库后端,它提供了一个管理界面(基于…...

[双指针] (二) LeetCode 202.快乐数 和 11.盛最多水的容器

[双指针] (二) LeetCode 202.快乐数 和 11.盛最多水的容器 快乐数 202. 快乐数 题目解析 (1) 判断一个数是不是快乐数 (2) 快乐数的定义:将整数替换为每个位上的和;如果最终结果为1,就是快乐数 (3) 这个数可能变为1,也可能无…...

前端、HTTP协议(重点)

什么是前端 前端是所有跟用户直接打交道的都可以称之为是前端 比如:PC页面、手机页面、平板页面、汽车显示屏、大屏幕展示出来的都是前端内容 能够用肉眼看到的都是前端 为什么要学前端 学了前端以后我们就可以做全栈工程师(会后端、会前端、会DB、会运维等) 咱…...

软件开发项目文档系列之六概要设计:构建可靠系统的蓝图

概要设计是软件开发项目中至关重要的阶段,它为整个系统提供了设计蓝图和技术方向。它的重要性在于明确项目目标、规划系统结构、确定技术选择、识别风险、以及为团队提供共同的视角,确保项目在后续开发阶段按计划进行。概要设计的主要内容包括项目的背景…...

[C++]命名空间等——喵喵要吃C嘎嘎

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…...

安装ora2pg遇到如下问题

通过源码安装ora2pg成功后,查询帮助信息报错 [rootlocalhost bin]# ora2pg --help Cant locate open.pm in INC (you may need to install the open module) (INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/shar…...

x86-32-Linux下栈溢出攻击原理

在x86-32-Linux下构造一个栈溢出攻击 栈缓冲区溢出攻击:向栈上的数组写入超过数组长度的数据导致覆盖到正常数据{栈帧上的返回地址}。 IA-32下C函数调用约定: 调用者将参数从右向左入栈,构造参数call 指令短跳转,会将call指令下一…...

GPS学习(一):在ROS2中将GPS经纬度数据转换为机器人ENU坐标系,在RVIZ中显示坐标轨迹

文章目录 一、GPS模块介绍二、坐标转换转换原理参数解释: 增加回调函数效果演示 本文记录在Ubuntu22.04-Humbel中使用NMEA协议GPS模块的过程,使用国产ROS开发板鲁班猫(LubanCat )进行调试。 一、GPS模块介绍 在淘宝找了款性价比较高的轮趣科技GPS北斗双…...

chatgpt生成文本的底层工作原理是什么?

文章目录 🌟 ChatGPT生成文本的底层工作原理🍊 一、数据预处理🍊 二、模型结构🍊 三、模型训练🍊 四、文本生成🍊 总结 📕我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN…...

javaEE -11(10000字HTML入门级教程)

一&#xff1a; HTML HTML 代码是由 “标签” 构成的. 例如&#xff1a; <body>hello</body>标签名 (body) 放到 < > 中大部分标签成对出现. 为开始标签, 为结束标签.少数标签只有开始标签, 称为 “单标签”.开始标签和结束标签之间, 写的是标签的内容. (h…...

LeetCode75——Day21

文章目录 一、题目二、题解 一、题目 1207. Unique Number of Occurrences Given an array of integers arr, return true if the number of occurrences of each value in the array is unique or false otherwise. Example 1: Input: arr [1,2,2,1,1,3] Output: true Ex…...

学习笔记---更进一步的双向链表专题~~

目录 1. 双向链表的结构&#x1f98a; 2. 实现双向链表&#x1f41d; 2.1 要实现的目标&#x1f3af; 2.2 创建初始化&#x1f98b; 2.2.1 List.h 2.2.2 List.c 2.2.3 test.c 2.2.4 代码测试运行 2.3 尾插打印头插&#x1fabc; 思路分析 2.3.1 List.h 2.3.2 List.…...

vscode格式化代码, 谷歌风格, 允许短if同行短块同行, tab = 4舒适风格

ctrl ,输入format, 点开C风格设置 在这块内容输入{ BasedOnStyle: Chromium, IndentWidth: 4, ColumnLimit: 200, AllowShortIfStatementsOnASingleLine: true, AllowShortLoopsOnASingleLine: true} C_Cpp: Clang_format_fallback Style 用作回退的预定义样式的名称&#x…...

百度富文本上传图片后样式崩塌

&#x1f525;博客主页&#xff1a; 破浪前进 &#x1f516;系列专栏&#xff1a; Vue、React、PHP ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 问题描述&#xff1a;上传图片后&#xff0c;图片会变得很大&#xff0c;当点击的时候更是会顶开整个的容器的高跟宽 原因&#…...

autoware.ai中检测模块lidar_detector caffe

lidar_apollo_cnn_seg_detect模块&#xff1a;该模块主要是调用百度apollo的目标分割。 1.需要安装caffe进行实现: caffe安装步骤&#xff1a; git clone https://github.com/BVLC/caffecd caffe && mdkir build && cd buildcmake ..出现报错&#xff1a; CM…...

CentOS安装Ruby环境

安装依赖项 sudo yum install -y perl zlib-devel openssl-devel安装git sudo yum install -y git git config --global http.sslVerify falsecurl取消ssl认证 echo "insecure" >> ~/.curlrc安装rbenv https://github.com/rbenv/rbenv git clone https://…...

力扣第509题 斐波那契数 新手动态规划(推荐参考) c++

题目 509. 斐波那契数 简单 相关标签 递归 记忆化搜索 数学 动态规划 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&a…...

canvas绘制签名并保存

实现签名的三个关键方法&#xff1a; 1.mousedown&#xff1a;当鼠标按下时开始绘制签名。 2.mousemove&#xff1a;鼠标移动时持续绘制。 3.mouseup&#xff1a;鼠标抬起时结束绘制。 html&#xff1a; <div class"setSign"><canvasref"canvas&q…...

Android渲染流程

目录 缓冲区的不同生命周期代表当前缓冲区的状态&#xff1a; 多个源 ViewRootImpl&#xff1a; Android4.0&#xff1a; Android5.0&#xff1a; Android应用程序调用SurfaceFliger将测量&#xff0c;布局&#xff0c;绘制好的Surface借助GPU渲染显示到屏幕上。 一个Acti…...

牛客-【237题】算法基础精选题单-第二章 递归、分治

第二章 递归、分治 递归NC15173 The Biggest Water ProblemNC22164 更相减损术 递归 NC15173 The Biggest Water Problem 简单递归&#xff0c;直接暴力 #include <math.h> #include <stdio.h> #include <algorithm> #include <cstring> #include &…...

leetcode-字符串

1.反转字符串LeetCode344. 20230911 难度为0&#xff0c;此处就不放代码了 注意reverse和swap等一系列字符串函数什么时候该用&#xff0c;记一记库函数 swap可以有两种实现&#xff0c;涨知识了&#xff0c;除了temp存值还可以通过位运算&#xff1a;s[i] ^ s[j]; s[j] ^ s[i…...

多线程---synchronized特性+原理

文章目录 synchronized特性synchronized原理锁升级/锁膨胀锁消除锁粗化 synchronized特性 互斥 当某个线程执行到某个对象的synchronized中时&#xff0c;其他线程如果也执行到同一个对象的synchronized就会阻塞等待。 进入synchronized修饰的代码块相当于加锁 退出synchronize…...

Qt实现卡牌对对碰游戏

效果 闲来无事&#xff0c;实现一个对对碰游戏&#xff0c;卡牌样式是火影动漫。 先上效果&#xff1a; 卡牌对对碰_火影主题 玩法 启动游戏&#xff0c;进入第一关卡&#xff0c;所有卡牌都为未翻开状态&#xff0c;即背面朝上&#xff1b;点击卡牌&#xff0c;则将卡牌翻开…...

【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割7(数据预处理)

在上一节&#xff1a;【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割6&#xff08;数据预处理&#xff09; 中&#xff0c;我们已经得到了与mhd图像同seriesUID名称的mask nrrd数据文件了&#xff0c;可以说是一一对应了。 并且&#xff0c;mask的文件&#xff0c;还根据结…...

极米科技H6 Pro 4K、H6 4K高亮定焦版——开启家用投影4K普及时代

智能投影产业经过几年发展&#xff0c;市场规模正在快速扩大。洛图数据显示&#xff0c;预计今年中国投影出货量有望超700万台&#xff0c;2027年达950万台&#xff0c;可见智能投影产业规模将逐渐壮大&#xff0c;未来可期。2023年&#xff0c;投影行业呈现出全新面貌&#xf…...

软考系统架构师知识点集锦九:数据库系统

一、考情分析 二、考点精讲 2.1数据库概述 2.1.1数据库模式 (1)三级模式:外模式对应视图&#xff0c;模式(也称为概念模式)对应数据库表&#xff0c;内模式对应物理文件。(2)两层映像:外模式-模式映像&#xff0c;模式-内模式映像;两层映像可以保证数据库中的数据具有较高的…...

IOC课程整理-6 Spring IoC 依赖注入

1 依赖注入的模式和类型 模式 类型 2 自动绑定&#xff08;Autowiring&#xff09; 官方定义 “自动装配是Spring框架中一种机制&#xff0c;用于自动解析和满足bean之间的依赖关系。通过自动装配&#xff0c;Spring容器可以根据类型、名称或其他属性来自动连接协作的bean&…...

FANUC机器人PRIO-621和PRIO-622设备和控制器没有运行故障处理

FANUC机器人PRIO-621和PRIO-622设备和控制器没有运行故障处理 如下图所示&#xff0c;新的机器人开机后提示报警&#xff1a; PRIO-621 设备没有运行 PRIO-622 控制器没有运行 我们首先查看下手册上的报警代码说明&#xff0c;如下图所示&#xff0c; 如下图所示&#xff0c…...

《动手深度学习》线性回归简洁实现实例

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…...

国家数据局正式揭牌,数据专业融合型人才迎来发展良机

&#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐的一位博主。 &#x1f4d7;本文收录于恒川的日常汇报系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏C语言初阶、C…...