确保打在rpm包中的.so文件具有可执行权限

安卓逆向 -- 绕过SO层签名验证 往期文章 安卓逆向 -- NDK开发实现MD5算法 安卓逆向 -- 调用其他APK的SO文件 安卓逆向 -- IDA基本用法 安卓逆向 -- IDA动态调试 安卓逆向 -- 实现SO层签名验证 SO层加验证就可以防止别人了么?俗话说防君子不防小人,这次我们来做一次“小人”。。。。 一、按上节课内容将SO文件导入,会提示验证错误, 二、分析SO文件 1、继续查看signatureparams函数内容 2、函数最前面加了一段验证,双击byte_2c223查看字符串内容 阅读详情

背景介绍:

有一个工程,其目录结构是:

libB

   -- libA

   -- src

   -- packaging

目录libA通过scons编译生成libA.so,目录src中的源代码通过 CMAKE编译生成libB.so, 且libB.so 依赖 libA.so. 另外有个应用程序 appC,依赖 libB.so。请问如何libB如何打包成rpm。libB.rpm


方案一:

1) 先只编译LibA,生成的libA.so在libA/libA.so,然后在libB的CMAKE文件中链接LibA.so, 并用FILES安装LibA.so.

libB.spec:

Name:           libB
Version:        0.1.0
Release:        1
License:        TO BE / FILLED IN
Group:          TO BE / FILLED IN
Source0:        %{name}-%{version}.tar.gz
Summary:        LibB
BuildRequires:  cmake
BuildRequires:  scons

%description
LibB

%package devel
Summary:        Include Files and Libraries mandatory for Development
Group:          TO BE / FILED IN
Requires:       %{name} = %{version}-%{release}

%description devel
This package contains all necessary include files and libraries needed
to develop applications that require these.

%prep
%setup -q

%build
pushd .
cd libA
scons --prefix=%{_prefix}
popd

cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix}

make %{?jobs:-j%jobs}


%install
rm -rf %{buildroot}
%make_install

%clean
rm -rf %{buildroot}

%post

%postun


%files
%defattr(-,root,root,-)
%{_libdir}/libA.so
%{_libdir}/LibB.so

%files devel
%defattr(-,root,root,-)
%{_includedir}/*
%{_libdir}/pkgconfig/%{name}.pc
%{_libdir}/pkgconfig/libA.pc


LibB CMAKELists.txt:

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(libB)

ADD_LIBRARY(${PROJECT_NAME} SHARED src/libB.c)
# 寻找libA.so
FIND_LIBRARY(LibA NAME A PATHS ${CMAKE_SOURCE_DIR}/libA DOC "LibA library")
# 链接libA.so
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PKGS_LDFLAGS} ${LibA})
# 安装libA.so
INSTALL(FILES ${CMAKE_SOURCE_DIR}/libA/libA.so DESTINATION ${LIBDIR})
# 安装libB.so
INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR})
2)编译appC

编译出错:

appC: nothing provides libA.so needed by libB

原因分析:明明libB.rpm里已经包括了libA.so 和libB.so, 为什么说没有提供libA,so?

我们解开rpm看看:

rpm2cpio libB.rpm | cpio -div
cd usr/lib
ls -l
-rwxr-xr-x 1 root root 1637738  19 18:27 libB.so
-rw-r--r-- 1 root root 1674522  19 18:27 libA.so

libA.so的可执行权限没有了。

原因是 以FILES安装的文件会去除可执行权限

INSTALL(FILES ${CMAKE_SOURCE_DIR}/libA/libA.so DESTINATION ${LIBDIR})


解决方案2:

1)编译安装libA都通过scons。

libB.spec:

Name:           libB
Version:        0.1.0
Release:        1
License:        TO BE / FILLED IN
Group:          TO BE / FILLED IN
Source0:        %{name}-%{version}.tar.gz
Summary:        LibB
BuildRequires:  cmake
BuildRequires:  scons

%description
LibB

%package devel
Summary:        Include Files and Libraries mandatory for Development
Group:          TO BE / FILED IN
Requires:       %{name} = %{version}-%{release}

%description devel
This package contains all necessary include files and libraries needed
to develop applications that require these.

%prep
%setup -q

%build
pushd .
cd libA
scons --prefix=%{_prefix}
popd

cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix}

make %{?jobs:-j%jobs}


%install
rm -rf %{buildroot}
pushd .
cd libA
scons --prefix=%{_prefix} --libdir=%{_libdir} --install-sandbox=%{buildroot} install
popd
%make_install

%clean
rm -rf %{buildroot}

%post

%postun


%files
%defattr(-,root,root,-)
%{_libdir}/libA.so
%{_libdir}/LibB.so

%files devel
%defattr(-,root,root,-)
%{_includedir}/*
%{_libdir}/pkgconfig/%{name}.pc
%{_libdir}/pkgconfig/libA.pc


 


LibB CMAKELists.txt: 去除安装libA.so步骤。

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(libB)

ADD_LIBRARY(${PROJECT_NAME} SHARED src/libB.c)
# 寻找libA.so
FIND_LIBRARY(LibA NAME A PATHS ${CMAKE_SOURCE_DIR}/libA DOC "LibA library")
# 链接libA.so
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PKGS_LDFLAGS} ${LibA})
# 安装libA.so
#INSTALL(FILES ${CMAKE_SOURCE_DIR}/libA/libA.so DESTINATION ${LIBDIR})
# 安装libB.so
INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR})

2)编译appC成功。


安卓逆向so篇(一):so文件调用 安卓逆向分析时偶尔会遇到签名算法在native层的,想要调用该签名算法,可以采用以下三种方法:hook相关函数,逆向so文件,调用so文件 阅读详情

相关推荐

CentOS 7 升级 OpenSSH 9.6 (优化rpm包)

OpenSSH 9.6 依赖 OpenSSL 1.1.1w,批量部署要同时部署两个包,很麻烦。好在 OpenSSL 编译生成了静态库,OpenSSH 也支持静态编译 openssl,所以修改。首先,准备新的 sshd_config,把openssh源码包中的 sshd_config 解压出来,与现有配置做合并。宏定义时,在Makefile中指定使用 OpenSSL 1.1.1w 的静态库。所以需要rpm包判断是 全新安装 还是 升级安装,升级安装时把。都是按需配置,所以安装sshd时需要保留自定义配置。

xiangyong_的博客 2863

反编译so文件并修改|破解安卓授权软件

背景 在开源社区看到一个开源软件,可以用来测试开发其他流程,但是这个开源的安卓中核心功能在so中加密了,关键是还有授权码,开源代码中的授权码过期了,无法使用软件,无奈需要自己手动去破解。 工具 IDA 010 Editor 找到授权代码 在安卓代码中,可以看到在没有授权的时候调用初始化方法没有反应,根据名字去搜索so文件。 这个native方法中用到了 授权的地方,将引用的so文件导入到IDA工具中 快捷键:ALT+T 搜索create,ctrl+t 查找下一个 找个这个方法后

zhy的博客 7599

Linux 软件管理-rpm软件包管理

​ Linux操作系统下,软件的打包,安装,卸载,都由会统一起来管理。对于不同的Linux发行版本,软件包管理工具会有所不一样。对于debian系的操作系统 ,用的是apt,RHEL系的操作系统 ,用的是RPM(RedHat Package Manager)。类似于windows下的 setup.exe 安装程序,RHEL系的操作系统安装包,都是以RPM为后缀。而且每个RPM包的命令格式,都有一个规则。.msilinux 后缀至少用来做表示,后缀对程序类型没有影响。

mohuanfenghuang的博客 1541

rpm包制作

SPEC文件 <br />spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件。spec文件包含建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个目录下。这个文件一般分为如下的几节:<br />(1) Preamle(序言) <br />序 言包含用户请求包的信息时所显示的内容。它可以包含包的功能描述、包的软件版本、版权信息和所属的包组等。Summary 是一行关于该软件包的描述,Name 是该软件包的基名,Version 是该软件的版本号,Rel

cybertan的专栏 1万+

掌握glibc rpm包升级:Linux系统的核心更新

yum(Yellowdog Updater Modified)和dnf(Dandified YUM)都是基于RPM包管理的前端工具,用于安装、更新、删除和管理Linux系统上的软件包。它们都继承了YUM的功能,并对依赖解析机制进行了改进。dnf是yum的下一代版本,它解决了yum在处理依赖关系时的一些性能问题,而且dnf支持多版本包管理,允许系统管理员安装和切换不同版本的软件包。此外,dnf提供了一个更高效的事务系统,它可以并行处理任务,并且更详细地记录了事务信息。

weixin_28840811的博客 1368

iOS安全攻防:从DarkSword漏洞利用链剖析到纵深防御实践

在移动安全领域,内存破坏漏洞(如堆溢出、释放后使用)是攻击者突破系统防线、实现远程代码执行和权限提升的核心技术原理。这些漏洞利用技术通过精心构造的攻击链,能够绕过沙箱、地址空间布局随机化等安全机制,最终威胁设备内核安全,其技术价值在于揭示了系统安全架构的潜在薄弱环节。在iOS应用开发与系统防护中,理解此类攻击链对于构建有效的纵深防御体系至关重要。应用场景涵盖从安全编码、网络通信加固到运行时应用程序自保护等多个层面。本文以DarkSword工具包为例,深入拆解其利用链,并分享如何通过内存安全实践、代码签名强化

weixin_30357231的博客 481

RPM包管理常用命令和小知识

1 常用命令 如何查看已经安装的rpm包? yum list installed |grep xxx 如何查看rpm包里打包了什么? rpm -qpl packetname.rpm 如何安装srpm? 2 小知识

Wang20122013的博客 1316

AIDD机器学习深度学习药物发现与设计教程总结

AIDD(AI Drug Discovery & Design):是近年来非常火热的技术应用,且已经介入到新药设计到研发的大部分环节当中,为新药发现与开发带来了极大的助力。倾向于机器对数据库信息的自我学习,可以对数据进行提取和学习,一定程度上避免了化合物设计过程中的试错路径,同时还会带来很多全新的结构,为药物发现打破常规的结构壁垒。覆盖了机器学习和深度学习,能与新药研发相结合并实质性的应用到靶点预测、高通量筛选、药物设计、药物的ADMET性质预测等;且算力方面,由早期应用于药物发现领域的决策树、随机

wutianlin0723的博客 6817

从源码制作rpm包

发现Makefile文件中的前缀是大写的PREFIX,因为Makefile文件对大小写文件敏感,所以make install 中的prefix参数没生效,改成PREFIX后,并覆盖Makefile文件中LIBRARY_PATH值。编写 RPM 包的元数据文件~/rpmbuild/SPECS/myapp.spec。将源码包放入 ~/rpmbuild/SOURCES/这时会在root下生成一个rpmbuild目录。下面以构建cjson包为例。

青山绿水 630

(project generation have a problem)STM32CubeMX生成工程一直报错项目生成有问题[玄学三步解]

解决办法 第一步,检查自己是不是真的配置的不对,JAVA安装没,pack路径设置的对不对,这里有一位前辈的博文写的非常好,附加链接https://blog.csdn.net/ybhuangfugui/article/details/52225736#commentBox 第二步,如果按照前辈的博文设置的都一模一样,还是不对,想我下图这样。 那你来对地方了 方法很简单,你把你生成工程文件的路径彻底的...

展桑博客-BenjieBlog 2923

GlobalMapper地形对比与方量计算实战:从两期数据到填挖方区域精准提取

本文详细介绍了使用GlobalMapper进行地形对比与方量计算的实战方法,从两期数据准备到填挖方区域精准提取。通过三步核心操作和实用技巧,帮助工程师高效完成土方平衡分析,提升工程预算精度。特别适用于河道整治、湿地修复等工程项目,大幅减少人工计算误差和时间成本。

weixin_28698059的博客 221

linux中rpm包的管理,Linux中的RPM包管理rpm命令管理

一、RPM包的命名规则如httpd-2.2.15-15.el6.centos.1.i686.rpmhttpd-2.2.15-15.el6.centos.1.i686.rpm:包全名httpd:软件包名     2.2.15:软件版本15:软件发布的次数   el6.centos:适合的Linux平台i686:适合的硬件平台  rpm:rpm包的扩展名包全名:操作的包是没有安装的软件包时,使用包全名...

weixin_39616056的博客 228

保姆级教程:在ESXi 8.0上为NVIDIA ConnectX-5/6网卡开启SR-IOV(从BIOS到虚拟机配置)

本文提供在ESXi 8.0上为NVIDIA ConnectX-5/6网卡开启SR-IOV的详细教程,涵盖BIOS设置、固件配置、驱动优化及虚拟机部署。通过SR-IOV技术,显著提升虚拟化环境中的网络性能,适用于高性能计算、AI训练等场景。

weixin_26934905的博客 455

Linux百度云文件不合法,百度网盘Linux版RPM转成DEB包后很多文件的权限不符合常规规范...

百度网盘Linux版客户端提供下载了,目前仅提供RPM包,这是规范的软件包。很多用户为了让百度网盘在Deepin等系统上运行,都使用了Alien把RPM转成DEB包(即baidunetdisk_linux_2.0.1-2_amd64.deb,参考Deepin、Ubuntu下安装百度网盘baidunetdisk_linux_2.0.1.rpm的方法),然后进行安装,不过看了一下DEB包的Lintia...

weixin_39842611的博客 984

CMOS 半加器和全加器&&数字集成电路&& Cadence Virtuoso

数字集成电路——半加器和全加器

计科小学生的博客 1万+

ARM Linux工控板+C# .NET Core:倍福ADS协议轻量化工业控制(附跨平台部署代码)

某自动化设备厂的倍福PLC控制系统曾依赖传统x86工控机:单台设备需配备1台Intel i5工控机(成本约8000元),功耗30W+,且Windows系统稳定性受工业环境干扰(如电磁辐射导致蓝屏)。更棘手的是,设备需部署在产线边缘(空间狭小),x86工控机的体积(4U机架)和散热需求(风扇噪音)难以适配;而多设备部署时,高硬件成本和高功耗导致年运维成本超20万元。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 954

linux 提取cpio_【rpm】从rpm包中提取文件:rpm2cpio和cpio的使用

rpm2cpio命令可以用于将rpm格式的文件转为cpio格式的文件。rpm是Linux中常用的文件格式,方便了用户的安装,但没有cpio格式灵活。cpio是用来建立,还原备份档的工具程序,它可以加入,解开cpio或tar备份档内的文件。一个典型的例子就是安装一个在rpm中.so文件时,如果直接使用rpm安装,那么需要处理复杂的依赖关系,将rpm转为cpio,则可以方便地提取.so文件,做个软连接...

weixin_28877703的博客 1015

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

mysql rpm包安装教程_MySQL的rpm安装教程

Linux 上安装 MySQLLinux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址:MySQL- MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。MySQL-client- MySQL 客户端程序,用于连接并操作Mysql服务器。MySQL-devel- 库和包含文件,如果你想要编译其它MySQL客户端,例如Per...

weixin_42097914的博客 1822

深度学习工具包 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")

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

3.5亿参数小模型有多强?Granite-4.0-350M-BE-GGUF基准评测与12种多语言能力深度解析

Granite-4.0-350M-BE-GGUF 是 IBM Granite 团队 3.5 亿参数轻量小模型的 GGUF 量化版本,专为 IBM Z 与 LinuxONE 大端(Big-Endian)架构做了字节交换(BE)适配。本文带你完整看懂它的 20 种量化规格如何选、官方基准评测(Benchmark)成绩有多能打,以及它原生支持的 12 种语言多语言能力到底强在哪。 ## 一、Grani

gitblog_06816的博客 221

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

无root sudo权限下解压安装rpm文件并设置so库文件路径

前提:没有root权限、没有sudo权限,不能使用rpm目录安装。

Oxye 1354

libaio.so.1 rpm 解决方案

libaio.so.1 rpm 解决方案 【下载地址】libaio.so.1rpm解决方案 在使用 db2start 命令时,若遇到 "error while loading shared libraries: libaio.so.1: cannot open shared object file: No such fi...

gitblog_06712的博客 469

OpenSSH-9.9p2 RPM包已发布

nugent1a/openssh-rpms: x64环境适用的OpenSSL/SSH rpm包是一个免费的 SSH 连接工具,广泛用于安全的远程登录和文件传输。本项目提供了RPM包的形式对OpenSSH进行升级,以确保您使用的是最新版本。

qq_33364409的博客 3384

linux下rpm包安装MySQL

继上次用tar.gz包方式安装失败后, wlinux下安装MySQL遇到的坑_阿部仲麻吕的博客-优快云博客先是显示不安装libgcc_s.so.1不能工作,网上找了好多办法,有,看看libgcc_s.so.1位置在哪儿,没有的话安装,有的话把libgcc_s.so.1放到MySQL lib目录下我试了还不行。我还在这儿https://blog.csdn.net/kongxx/article/details/39001009 看到说64位和32位的帖子,然后我就按着做了,然后ibgcc_s.so.1的提示

weixin_43273269的博客 1084

RPM SPEC文件编写通用规范

  <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> The RPM system assumes five RPM directories BUILD:rpmbuild编译软件的目录 RPMS:rpmbuil

sam_shen_921的专栏 3646

centos7使用rpmbuild制作RPM包

前言 所有操作在root权限下执行 一.将之前我们制作tarball软件包复制到/root/rpmbuild/SOURCES上面并打包 复制 cp -r /usr/local/src/sort-average /root/rpmbuild/SOURCES 进入/root/rpmbuild/SOURCES目录 ...

jisonami的专栏 920
上一篇: Sunpinyin中SLM训练数据生成举例
下一篇: 算法练习:多米诺骨牌
tlight
博客等级 码龄23年 2粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值