powershell 基础知识与应用

Powershell简介 Powershell简介 PowerShell是一种功能强大的脚本语言和shell程序框架,主要用于Windows计算机方便管理员进行系统管理并有可能在未来取代Windows上的默认命令提示符。PowerShell脚本因其良好的功能特性常用于正常的系统管理和安全配置工作,然而,这些特性被攻击者理解并转化为攻击特性,也就成为了攻击者手中的攻城利器,给企业网络造成威胁。 百度百科解释: Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framew 阅读详情

什么是powershell

Windows Powershell 是一种命令行外壳程序和脚本环境,可以将命令列表做成脚本来完成,简化人工操作,功能强大杀毒软件扫描不到。

打开powershell

可以通过win+r 输入powershell来打开,在powershell ise 中用户可以运行命令,编写脚本,测试和调试脚本,powershell ise拥有自己的配置文件,可以使用函数,别名,变量和命令。如果忘记命令的编写参数,可以通过ise的右侧命令检索器中检索出需要的命令。

powershell的输入与输出

read-host “输入文字”
write-output(“输出文字”)/write-output “输出”
write-error() 错误信息输出
echo “显示信息”

powershell 变量、常量、数组

1、变量
powershell 是一种弱类型语言,所谓弱类型语言,是指不用区分数据类型,不像java语言一样,在定义变量时必须指定变量的类型,shell可以根据数据的值自动的赋予类型,不过在使用时一般都需要指定变量类型,用于强定义。
shell中变量的赋值: $变量名 = 值 $name = xiaoming
shell 变量可以分为用户变量,环境变量,常量,需要自定义的是用户变量。

2、环境变量
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件和系统文件夹位置等。
在安装一些软件时需要进行环境变量的配置,安装Tomcat后需要检查配置环境变量,powershell中可以利用 $evn:环境变量名来检查这些变量,或调试其他变量。
当需要的环境变量不存在时可以通过powershell临时生成环境变量,仅在powershell中有效,重新打开就没有了,
格式为 $env:环境变量名 = 值的格式用于生成新的环境变量。
如果要写入环境变量,可以使用:
[system.environment]::setenvironment variable(“testpath”,“d/test”,“machine”)的方法写入到系统环境变量中
[environment]::setenvironment variable(“path”,";c:\powershellscript",“user”) 的方法写入到用户环境变量中

3、常量
相对于变量而言,常量是不可改变的量,在powershell 中常量的使用需要声明。 —name 用于申明常量名,—value 用于声明常量值,声明常量不需要"",但使用时需要加上“",但使用时需要加上“",但使用时需要加上“”符号。

4、数组
数组就是有序的元素序列,具有相同类型的若干元素按有序的形式组织在一起的一种形式,数组的长度不能扩大,数组的大小由它包括的元素决定。
数组的声明有4种形式:
1、arrayname=1,2,3,42、array_name = 1,2,3,4 2、arrayn​ame=1,2,3,42、array_name = 1…10 表示1到10
3、arrayname=@()定义空数组4、array_name = @()定义空数组 4、arrayn​ame=@()定义空数组4、array_name [0] 数组从下标0开始

5、强类型

在这里插入图片描述
在这里插入图片描述

在强类型中限制了变量和数组的数据类型,只允许给当前变量赋指定的值,如果给 int 赋予小数型则会被四舍五入,赋予字符串则编译不通过。

6、字符串
shell中字符串可以接受其他任意类型的值并转为字符串类型,但不能反过来,[string] $name = 1233。字符串型,非数值型不能转换成数字类型。任意数据类型 + 字符串类型,结果为前面的数据类型。

常用字符串操作函数

操作符描述
-replace替换字符
-like验证字符串是否包含关系
[string]::isnullorempty(str)验证字符串是否包含关系
.contains()验证包含关系
.split()字符串拆分,以空格拆分
.split(“str”)字符串拆分,以字符串拆分
.length获取字符串长度
.insert (int,str)在指定位置插入字符串
.remove(start,length)删除从指定位置到指定线长度的字符串
.substring(start,end)截取字符串长度

逻辑控制语句

if-else 当逻辑只有两种时使用
if-elseif-else 多个分支
if-if(会执行所有的 if 分支)

逻辑运算符

运算符说明
-not非 运算,表达式为true则返回false,反之返回true
-or或 运算,有一个表达式为true则返回true
-and与 运算,两个表达式均为true才返回true
-xor逆或 运算

关系运算符

运算符说明
-eq检测两个数是否 相等 ,相等返回true。 $a -eq $b
-ne检测两个数是否 不相等。
-gt检测左边的数是否 大于 右边的数
-ge检测左边的数是否 大于等于 右边的数
-lt检测左边的数是否 小于 右边的数
-le检测左边的数是否 小于等于 右边的数
[String]::IsNullOrEmpty(str)判断字符串是否为空
-match判断字符串是否匹配给定的正则表达式

正则表达式

正则表达式通常被用来检索、替换那些符合某个模式的文本是对字符串操作的一种逻辑公式。

运算符说明
^在字符串的开始匹配
.匹配出了换行符之外的任意字符
[^abc]匹配除了包含在中括号的任意字符
[abc]匹配括号中指定的任意一个字符
[a-z]匹配括号中指定的任意区间之中的任意一个字符
[^a-z]匹配除了包含在括号指定区间字符的字符
\B不在单词的边界匹配
\Z在字符串的结尾匹配(包含多行文本)
\uFFFF匹配 Unicode 字符的十六进制代码 FFFF。eg:欧元符号的代码20AC
\v匹配纵向制表符(ASCII 11)
\w匹配字符、数字和下划线
\W匹配字符、数字和下划线以外的字符
\a响铃字符(ASCII 7)
\c or \C匹配 ASCII 中的控制字符, eg:Ctrl+C
\d匹配数字字符,等同于[0-9]
\D匹配数字以外的字符,等同于[^0-9]
\eEsc (ASCII 9)
\f换页符(ASCII 15)
\n换行符
\r回车符
\s白空格(空格、制表符、新行)
\S匹配(空格、制表符、新行)以外的字符
\t制表符
\A \在字符串的开始匹配(包含多行文本)
\b在字符串的边界匹配
\xnn匹配特色字符,nn 代表十六进制的ASCII 码
.*匹配任意数量的字符(包括0个字符)
*匹配一个元素 0 次或多次(最大限度地匹配)
*?匹配前面的元素 0 次或多次(最小限度地匹配)
?匹配上一个元素 0 次或 1 次(最大限度地匹配)
??匹配上一个元素 0 次或 1 次(最小限度地匹配)
{n,}匹配上一个元素至少 n 次
{n,m}匹配上一个元素 n~m 次
{n}匹配上一个元素 n 次
+匹配上一个元素 1 次或多次
$在字符串的结尾匹配

循环语句

while
while(判断条件){
循环语句
}

for
for(定义变量;变量判断;变量自增自减){
循环语句
}

foreach
foreach(变量 in 组){
变量操作
}

跳出循环
Continue — 退出本次循环
Break — 退出整个循环

函数的定义与调用
代码块以function开头,后接函数标识符和圆括号。
参数放在括号中间,各参数以逗号隔开。
内容以{ 首行缩进 }
return[表达式]结束函数,选择性的返回一个值给调用方。
不带return表达式的函数默认返回 none 。
function 函数名(参数){
函数体
}

参数
形参
形式上的参数,在定义函数时,声明函数需要接收的参数个数,类型,顺序。
实参
实参是调用函数时给函数传入的实际参数值,参数的传入过程中必须按照形参定义的顺序,个数,类型传入。

管道
PowerShell中的管道如何工作?
  PowerShell的管道,能够传递对象,这是一个巨大的进步。到这个时候,管道才有了点函数调用的味道。调用方能够传递复杂的对象,接收方则要进行对象的类型匹配,匹配不正确命令执行就会出错。但这里也有例外。PowerShell管道不但可以按整个对象传递,还能够按照属性名传递,这一特性大大提高了管道的可用性,和处理能力。这使得我们能够在类型不匹配的情况下,也能够使用管道,传递对象的部分属性。

管道使用举例
在PowerShell中有一些专门为管道设计的命令如get-member、sort、measure等,也有一些命令虽然不是为管道专门设计,但却在管道中大放光彩。下面举例说明几个最常用的命令:

select

在管道中使用select命令,就像在Cmd中使用dir一样常见。不用看select命令的详细语法,你就能写出最常用的select使用方法。如下:

dir | select name,LastWriteTime
这个命令显示当前文件夹中的文件和子文件夹的名字和最后修改日期。

where

where命令使用来做筛选的,可以简写为?,使用示例如下:

dir | ? {$_.mode –like “d*”} | select name,LastWriteTime
这个命令能够只显示出当前文件夹的子文件夹,而不显示文件。

foreach

foreach可以对传递过来的每个对象进行处理,可以简写为‘%’。使用示例如下:

dir | ? {KaTeX parse error: Expected 'EOF', got '}' at position 21: …e -notlike "d*"}̲ | % {echo "The…($.name)’ is $.Length"}
这个命令的结果是输出类似“The size of file ‘myScript.ps1’ is 1520”这样的信息,每个文件一行。

管道描述
where-object过滤列表项或输出命令结果
foreach-object处理列表或者命令输出的每一个项目
select-object选择列表项或输出想要结果
sortobject
tee-object保存并输出列表项或者输出结果
group-object对列表项或者输出结果进行分组
convertto-HTML将对象转变为HTML文件

powershell 练习题

1、从键盘输入一个字符,判断这个字符是大写字母,小写字母,还是数字符号。

while(1 -eq 1){
[char]$a = Read-Host "请输入一个字符"
[int]$chr = [char]$a
    if($chr -ge 48  -and $chr -le 57){
        Write-Output "这是一个shuzi "
   }elseif(($chr -ge 65) -and ($chr -le 90)){
    Write-Output "这是一个大写字母"
    }elseif(($chr -ge 97) -and ($chr -le 122)){
    Write-Output "这是一个小写字母"
    }else{Write-Output "这是一个符号"}
    if($chr -eq 101){
    break
    }
    }

2、统计字符:从键盘输入一个字符串,统计这个字符串当中包含几个大写字母,几个小写字母,几个数字,几个特殊符号。

Write-Output("请输入一个字符串:")
$a=Read-Host
[char[]]$char_array = $a.ToCharArray()
[int]$length = $char_array.Length
$sumUp=0
$sumLow=0
$sumNum=0
$sumSpe=0
for($i=0;$i -lt $length;$i++){
    $int_array= [int]($char_array[$i])
    if(($int_array -ge 65)-and ($int_array -le 90)){
        $sumUp++
    }
    elseif(($int_array -ge 97)-and ($int_array -le 122)){
        $sumLow++
    }
    elseif(($int_array -ge 48)-and ($int_array -le 57)){
        $sumNum++
    }else{
        $sumSpe++
    }
}
Write-Output("这个字符串中包含{0}个大写字母,{1}个小写字母,{2}个数字及{3}个特殊符号" -f $sumUp,$sumLow,$sumNum,$sumSpe)

3、水仙花数:计算三位整数(100~999)的水仙花数。水仙花数是指每一位的立方相加等于该数自己,比如153 = 1^3 + 5^3 +3^3

for($i = 100;$i -le 999;$i++){
[string]$a = $i

[int]$bai = $a.Substring(0,1)
[int]$shi = $a.Substring(1,1)
[int]$ge = $a.Substring(2,1)

if(($bai*$bai*$bai)+($shi*$shi*$shi)+($ge*$ge*$ge) -eq $a){
 Write-Output "水仙花数"  $a
}
}

4、字符串判断:从键盘输入一个字符串,判断该字符串是否可以被转换为一个有效的数字。

Write-Output("请输入一个字符串:")
$s = Read-Host
$else = "[^0-9]"
if($s.Length -eq 1){
    Write-Output("能被转换为一个有效的数字")
}elseif($s.Length -ge 2){
    if($s -match $else){
        Write-Output("不能被转换为一个有效的数字")
    }else{
        Write-Output("能被转换为一个有效的数字")
    }
}

5、打印99 乘法表。

for($i=1;$i -lt 10;$i++){
    for($j=1;$j -le $i;$j++){  
            $sum = $i * $j
            Write-Host("{0} * {1} = {2}  " -f $i,$j,$sum) -nonewline
    }
    Write-Output("")
}

6、一个10000 以内整数,它加上100 和加上268 后都是一个完全平方数,请问该数是多少?

for($i=1;$i -lt 10000;$i++ ){
    for($j=1;$j -lt 100;$j++ ){
        if(($j*$j) -eq ($i + 100) ){
            for($k=1;$k -lt 100;$k++ ){
                if(($k*$k) -eq ($i + 268)){
                    Write-Output($i)
                }
            }
        }
    }
}

7、拆分字符串

[string]$s = "网络空间安全"
Write-Output($s.substring(0,2))
Write-Output($s.substring(1,2))
Write-Output($s.substring(2,2))
Write-Output($s.substring(3,2))
Write-Output($s.substring(4,2))

8、冒泡排序

$test_array=12,34,56,78,90
for($i = 0; $i -lt 4; $i++){
    for($j = 0; $j -lt 4 - $i; $j++){
        if($test_array[$j] -gt $test_array[$j+1]){
            $temp = $test_array[$j]
            $test_array[$j] = $test_array[$j+1]
            $test_array[$j+1] = $temp
        }
    }
}

foreach($index in $test_array){
    Write-Output($index)
}

9、计算200 以内的所有质数(即只有1 和其自身能够被这个数整除的数),建议使用至少3 种算法实现,看看哪一种算法的运算次数最少。

for($i=2;$i -le 200;$i++){
    for($j=2;$j -lt $i;$j++){
        $flag=1
        if(($i%$j) -eq 0){
            $flag=0
            break
        }
    }
    if($flag -eq 1){
            Write-Output($j)
    }
}

10、设定的总行数line 可以随机修改,修改后仍然能打印出line 行的直角三角形。
打印如下两种三角形图形:

$num = Read-Host "请输入行数"
for($i = 0; $i -le $num; $i++){
for($j = 0; $j -le $i; $j++){
Write-Host "* " -NoNewline
}
Write-Host 
}

powershell,介绍+简单使用 然后它和vbs cmd之间都可以互相调用,,它的兼容性是非常好的,再说说拓展性,poweshell可以管理一个活动目录,虚拟机的一个虚拟化的产品,比如虚拟化平台office365都可以借助powershel I,来管理我们的一些服务,一些产品,一些虚拟化的产品,一些话动目录,都可以借助powershell,来实现一些操作来管理,它的基于平台的可拓展性,也是很好的。为什么他叫power,因为它本身是很强大的,一句话概括,cmd能做的powershell都能做,cmd不能做的,powershell都能做。 阅读详情

相关推荐

Powershell语言的学习路线

PowerShell是基于.NET的命令行界面和脚本语言,它允许用户通过命令行执行各种任务,并可以使用脚本自动化重复性工作。PowerShell的设计理念是提供一种更加高效的管理系统的方式,因此它集成了丰富的命令(称为cmdlet)和强大的对象管道功能。

2501_90426061的博客 739

什么是 PowerShell?

什么是 PowerShell?

信息安全领域优质创作者|操作系统领域专家 7669

Powershell语言的系统运维

PowerShell 是一种命令行外壳和脚本语言,旨在帮助系统管理和自动化任务。它融合了命令行的交互性与脚本语言的灵活性,能够操作各种系统组件。

2501_90416912的博客 572

PowerShell的学习笔记(3)

继续学习PowerShell,继续记笔记。下面的内容可能会天马行空,不会按照一定的顺序,但是会给每个知识点一个标题。

超越梦想,一起飞!!! 3619

内网渗透(十六)之内网信息收集-powershell基础知识

Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境。你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆。 powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居当前所有shell之首。 当前powershell有四版本,分别为1.0,2.0,3.0 ,4.0

把自己活成一道光,因为你不知道,谁会借着你的光,走出了黑暗。请保持心中的善良,因为你不知道,谁会借着你的善良,走出了绝望。请保持你心中的信仰,因为你不知道,谁会借着你的信仰,走出了迷茫。请相信自己的力量,因为你不知道,谁会因为相信你,开始相信了自己.... 568

超详细!新手必看STM32-DMA配置与实验(串口使用DMA发送数据)

DMA就是:直接存储器访问。DMA传输数据从一个地址空间复制到另一个地址空间,提供在外设和存储器或者存储器和存储器之间的高速数据传输。

qq_1033275663的博客 2万+

PowerShell使用教程

一、说明 1.1 背景说明 个人对PowerShell也不是很熟悉,开始的时候就突然看到开始菜单中多了个叫PowerShell的文件夹,后来一点就看到某个教程视频说PowerShell很厉害但也没怎么听,再后来就看到kali也有了一些PowerShell的脚本这才意识到PowerShell应该确实有独到之处而且正在逐渐受到认可,不过我使用PowerShell是不久前网上看到篇文章说PowerShe...

weixin_34092455的博客 4964

腾讯开源CubeSandbox:为Agent打造可随时丢弃的安全沙箱环境

在人工智能与自动化技术快速发展的今天,智能体(Agent)在执行复杂任务时往往需要独立、完整的计算环境,但环境失控带来的安全风险一直是落地瓶颈。为解决这一痛点,可丢弃式沙箱技术应运而生。它通过轻量虚拟化原理实现环境秒级重建,并严格隔离宿主资源,即使Agent执行了恶意或误操作,也不会波及其他系统。这种技术价值在于平衡了灵活性与安全性,使开发者敢于赋予Agent更多自主操作权限。目前,这类技术已广泛应用于AI编程、自动化测试、数字员工、恶意代码分析等真实场景,成为Agent可靠运行的基石。腾讯开源的CubeS

weixin_42539414的博客 257

深入了解Windows PowerShell 自动化运维:基础知识、应用技巧和案例分享

Windows PowerShell 是一种用于自动化运维的强大工具,能够在Windows操作系统上执行各种管理任务。本文将重点介绍Windows PowerShell的基础知识、应用技巧和案例分享,帮助读者深入了解这款强大的自动化运维工具,并为读者在运维领域的发展提供宝贵的帮助和指导。

努力是为了站在万人之中,成为别人的光 5752

驻极体咪头信号采集避坑指南:如何用5V单电源搞定0.1mV~1V的音频放大?

本文针对驻极体咪头(ECM)在5V单电源系统中信号采集的常见难题,提供了详细的电路设计指南。文章深入分析了咪头的高输出阻抗与微弱信号特性,重点阐述了采用两级运放(如AD8542)实现低噪声放大、直流偏置叠加以及抗混叠滤波的完整方案,并分享了PCB布局、电源去耦等关键调试技巧,帮助工程师稳定采集0.1mV至1V的音频信号。

weixin_29291069的博客 441

手把手教你自制Type-C OTG转换器(附电路图及避坑指南)

本文详细指导如何自制Type-C OTG转换器,包括核心电路设计、元器件选型及焊接技巧,特别强调硬件检测电路的关键作用。通过实测数据和避坑指南,帮助开发者解决兼容性问题,实现高效数据传输。

weixin_27038245的博客 717

PowerShell攻击指南

什么是powershell?可以简单理解为cmd.exe的扩展。powershell具有灵活性和功能化管理windows系统的能力,powershell脚本文件后缀名是.ps1(数字1)Windows PowerShell是一种命令行外壳程序和脚本环境,它内置在每个受支持的windows版本中,使命令行用户和脚本编写者可以利用.NET Framework的强大功能。

鸡蛋炒鸡蛋 7305

平头哥面试——芯片工程师面经

有5个成递增关系的32bit地址值,彼此之间的间隔大小不确定,可以把他们当成parameter来输入模块,现有一个32bit输入数据,要求用尽量少资源去的判断这个数处于哪2个地址之间(地址区间),并且输出区间号。a)后续大概会在9月下旬谈具体的薪资,他们现在也没想好今年应届生的薪资该给多少,到时候如果可以签三方的话可能会跳过意向书环节直接发offer,谈薪资肯定是通过电话来。b. 这边的CPU是自己研制的(玄铁),成都这边主要做存储和网络,都有SOC。a. 成都这边的网络部门具体做的业务有哪些?

FPGA/MATLAB学习教程/源码/项目合作开发 2688

Powershell语言的移动应用开发

PowerShell是一种任务自动化和配置管理框架,它结合了命令行外壳和脚本语言。PowerShell的设计旨在使系统管理员和开发人员能够轻松地管理系统和应用。它广泛应用于Windows环境中,但随着越来越多的开源项目和跨平台工具的出现,PowerShell也逐渐支持Linux和macOS。

2501_90494561的博客 374

0.1 ROCm rocr-libhsakmt实现深度剖析专栏介绍

本专栏深入解析AMD ROCm生态核心组件rocrruntime,从底层硬件交互到上层封装实现。重点剖析libhsakmt驱动层的七大核心模块设计,包括拓扑管理、队列调度、事件同步等关键机制;详解C++接口封装策略与工程实践,如资源管理、多线程优化等。通过"硬件-驱动-应用"全链路技术拆解,帮助开发者深入理解ROCm运行时机制,解决性能调优、调试等实际问题,为HPC/AI应用开发提供底层技术支撑。

图形/计算GPU的驱动与虚拟化技术分享园地 5982

基于Jeecgboot3.8.1的vue3版本前后端分离的flowable流程管理平台

基于Jeecgboot3.8.1的vue3版本前后端分离的flowable流程管理平台

宁波阿成的博客 1544

学习PowerShell和SQL Server –简介

介绍 (Introduction) This article is the first step among many that I hope will help give you a foundation of knowledge to get started utilizing PowerShell. The focus in these steps will be specific...

culuo4781的博客 1150

【Unity 实用工具篇】✨| 受击插件Feel 详细教程,开发游戏时更好的操控 游戏打击感

在一个游戏中,游戏手感对于游戏的整体游玩体验是非常重要的,而游戏手感中有一个很重要的点:打击感 那本篇文章就来讲一下打击感中的受击反馈部分。 在游戏中经常会用到攻击敌人,敌人扣血,执行某些受击功能的执行,尤其是对于有战斗场景的游戏来说,这就是标准的受击反馈。 所以引出本篇文章的主角:受击插件 Feel 的使用,2D和3D游戏都可以使用。

努力前行,总会成为自己心中的那道光 3万+

c++ 调用 powershell_十九,Powershell基础入门及常见用法(一)

一.Powershell初识1.基础概念Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。传统的CMD支持脚本编写,但扩展性不好,而Powershell类...

weixin_42395980的博客 6525

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【亲测免费】 《Windows PowerShell实战指南 第2版》:掌握PowerShell的终极指南

《Windows PowerShell实战指南 第2版》:掌握PowerShell的终极指南 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 《Windows PowerShell实战指南 第2版》是一本专为希望深入了解和掌握Windows PowerShell的读者量身打造的实战指南。本书由浅入深,全面覆盖了PowerShell的基础知识到高级应用,旨在帮助读者在实际...

gitblog_06657的博客 745

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

Powershell语言的云计算

Powershell在云计算管理中发挥着不可或缺的作用,凭借其强大的功能和灵活性,帮助IT人员实现资源的自动化管理。通过本文的介绍,我们可以看到,Powershell不仅可以在Azure和AWS等主要云平台上使用,还可以通过脚本和模块实现高效的自动化管理。希望本文能帮助到希望在云计算领域深入了解Powershell的技术人员。随着云计算的不断发展,掌握Powershell将为云计算运维和开发工作提供更大的便利和效率。通过不断实践和探索,您必将成为Powershell在云计算中灵活运用的高手。

2501_90485602的博客 599

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Powershell语言的Web开发

PowerShell 是由微软开发的一种命令行界面和脚本语言,旨在为系统管理员提供更高效的管理工具。它基于 .NET Framework,因此可以利用 .NET 的类库和功能。PowerShell 允许用户通过命令行执行任务,并支持批量处理和自动化。

2501_90467932的博客 361

Powershell语言的区块链网络

PowerShell是一种任务自动化和配置管理框架,具有强大的脚本语言和命令行接口。对象导向:PowerShell处理的数据是对象,而不是简单的文本,这使得数据的操作更为灵活。跨平台支持:随着PowerShell Core的推出,PowerShell可以在Windows、Linux和macOS等多种操作系统上运行。丰富的模块:用户可以使用许多现成的模块来扩展其功能,以便于进行任务自动化。尽管PowerShell主要用于系统管理,但其在数据处理、API调用等方面的能力使得它可以与区块链进行交互。

2501_91290916的博客 2293

Powershell语言的区块链

区块链是一种分布式账本技术,它通过加密算法将信息以“区块”的形式存储在链条中。每一个区块包含一组交易记录,以及指向前一个区块的哈希值。由于每个区块都依赖于前一个区块的信息,篡改任何一个区块的数据都会破坏整个链的完整性。PowerShell是由微软开发的一种任务自动化和配置管理框架,通过结合命令行界面(CLI)和脚本语言,提供了一种功能强大的管理工具。它不仅可以处理文件系统、注册表和进程等本地资源,还能够管理远程系统和云资源。

2501_90231512的博客 1696

powershell文章汇总

3分钟带你了解PowerShell发展历程 从零开始——PowerShell应用入门(全例子入门讲解) Powershell变量的类型和强类型 – PowerShell 中文博客 Powershell变量的作用域 – PowerShell 中文博客 PowerShell单行注释、多行注释、块注释的方法_PowerShell_脚本之家 Powershell访问数组 – PowerShell...

冰封的落叶的博客 311

四、PowerShell运行命令

四、PowerShell运行命令 文章目录四、PowerShell运行命令1、剖析一个命令2、Cmdlet命名惯例3、别名:命令的昵称4、使用快捷方式5、Show-Command6、对扩展命令的支持7、处理错误8、常见误区9、操作练习10、最后 本章只是运行命令和命令行工具,没有脚本、没有编程语言。 PowerShell,如其名称所示,是一个Shell。它与UNIX的Shell也十分类似,比如说20世纪80年代后期的Bash,甚至是20世纪70年代面世的最原始的UNIX Bourne Shell。 这些语

逍遥游的博客 6519
上一篇: 第一次 周考
下一篇: 认识Linux
星辰流炎
博客等级 码龄6年 248粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值