MOE

[root@ChrisTest spawnL2SW]# more doshow.sh
#!/usr/bin/expect -f

##Define Variables
#Define Timeout
set time 10
#Define Password
set passwd "XXXXXXX"
set passwd2 "xxxxx"
set passwd2en "xxxxxxxx"
#Define Prompt
set prompt "CNAPS-UAT-SW01.>$"
set prompt2 "SH.
S.>$"
set prompt2en "SH.
S.#$"
#Define the last for character of mac address
set macaddr "3a66"
#Define HOSTNAME, argv 0 means get the first parameters from input.
set HOSTNAME [lindex $argv 0]
#Login Gateway Switch
spawn ssh admin@10.116.12.250
expect {
"
yes/no" { send "yes\r"; exp_continue }
"Password:" { send "$passwd\r" }
}
expect -re "$prompt"
send "ssh $HOSTNAME\n"
expect {
"
yes/no" { send "yes\r"; exp_continue }
"*Password:" { send "$passwd2\r" }
}
expect -re "$prompt2"
send "enable\n"
expect "Password:"
send "$passwd2en\n"
expect -re "$prompt2en"
send "ter len 0\n"
expect -re "$prompt2en"
send "sh ip int b\n"
expect -re "$prompt2en"
send "sh mac addr | in $macaddr\n"
expect -re "$prompt2en"
send "exit\r"

====================================================

[root@ChrisTest spawnL2SW]# more main_doshowall.sh
#!/bin/sh

#Define Variable
LIST=./SWlist.txt
DATE=date '+%Y-%m-%d_%H:%M:%S'

#Create Worklog Folder
mkdir ./worklog_$DATE

#Recursive the IP addresses in SWList to run the Script doshow.sh
for TARGET in cat $LIST
do
echo $TARGET
./doshow.sh $TARGET | tee ./worklog_$DATE/$TARGET.log
done

#Just for Test
#./doshow.sh 10.110.104.71 | tee ./worklog_$DATE/10.110.104.71.log

echo ' '
echo ' '
echo ' '
echo ' '
echo ' '

#################Export All Double-down Status Ports in 11F################
#Export Count of Port Status for Switches on 11 Floor.
SH11ESupupcount=`grep -rnh "GigabitEthernet.up.up" worklog$DATE/10.110.104.7 | w
c -l<br/>SH11ESupdown_count=grep -rnh "GigabitEthernet.
up.down" worklog_$DATE/10.110.104.7
| wc -l<br/>SH11ESdownup_count=grep -rnh "GigabitEthernet.down.up" worklog_$DATE/10.110.104.7
| wc -l<br/>SH11ESdowndown_count=grep -rnh "GigabitEthernet.
down.down" worklog_$DATE/10.110.10
4.7
| wc -l`

SH11WSupupcount=`grep -rnh "GigabitEthernet.up.up" worklog$DATE/10.110.104.8 | w
c -l<br/>SH11WSupdown_count=grep -rnh "GigabitEthernet.
up.down" worklog_$DATE/10.110.104.8
| wc -l<br/>SH11WSdownup_count=grep -rnh "GigabitEthernet.down.up" worklog_$DATE/10.110.104.8
| wc -l<br/>SH11WSdowndown_count=grep -rnh "GigabitEthernet.
down.down" worklog_$DATE/10.110.10
4.8
| wc -l`

echo "11F East Area UP\/UP count=$SH11ESupupcount" >> ./worklog$DATE/Count_Statisti
cs
echo "11F East Area UP\/DOWN count=$SH11ESupdowncount" >> ./worklog$DATE/Count_Stat
istics
echo "11F East Area DOWN\/UP count=$SH11ESdownupcount" >> ./worklog$DATE/Count_Stat
istics
echo "11F East Area DOWN\/DOWN count=$SH11ESdowndowncount" >> ./worklog$DATE/Count_
Statistics

echo "11F West Area UP\/UP count=$SH11WSupupcount" >> ./worklog$DATE/Count_Statisti
cs
echo "11F West Area UP\/DOWN count=$SH11WSupdowncount" >> ./worklog$DATE/Count_Stat
istics
echo "11F West Area DOWN\/UP count=$SH11WSdownupcount" >> ./worklog$DATE/Count_Stat
istics
echo "11F West Area DOWN\/DOWN count=$SH11WSdowndowncount" >> ./worklog$DATE/Count_
Statistics

#Export Port Status for all Switches.
grep -r "GigabitEthernet.down.down" worklog$DATE/10.110.104.* | awk -F"/" '{print
$2,$3,$4}' >./worklog
$DATE/11FDownDownPorts.txt

#################Export All Double-down Status Ports in 11F################

#################Find out the Port on Switch for specific Macaddr################
PortNum=grep -rh -B 1 'DYNAMIC Gi' worklog_$DATE/
#echo $PortNum
echo "The Port Number of $macaddr on switch is" >> ./worklog$DATE/PortNum.txt
echo "$PortNum" >> ./worklog
$DATE/PortNum.txt
PortNumResultSW=grep "#" worklog_$DATE/PortNum.txt | awk -F"#" '{print $1}'
PortNumResultPT=grep DYNAMIC worklog_$DATE/PortNum.txt | awk '{print $4}' | uniq
echo 'Switch:' "$PortNumResultSW" 'Port:' "$PortNumResultPT" > worklog_$DATE/PortNum
Result.txt
################Find out the Port on Switch for specific Macaddr################

################Export All Results################
echo ' '
echo ' '
echo ' '
echo ' '
echo ' '
cat worklog_$DATE/CountStatistics
echo ' '
cat worklog
$DATE/PortNumResult.txt
################Export All Results################

exit 1

=============================================================

[root@ChrisTest spawnL2SW]# cat SWlist.txt
10.110.104.71
10.110.104.72
10.110.104.73
10.110.104.74
10.110.104.75
10.110.104.76
10.110.104.81
10.110.104.82
10.110.104.83
10.110.104.84
10.110.104.85
10.110.104.86
10.110.104.91
10.110.104.92
10.110.104.93
10.110.104.94
10.110.104.95
10.110.104.101
10.110.104.102
10.110.104.103
10.110.104.104
10.110.104.105
10.110.104.106
10.110.104.111
10.110.104.112
10.110.104.113
10.110.104.114
10.110.104.115
10.110.104.117
10.110.104.119
10.110.104.121
10.110.104.122
10.110.104.123
10.110.104.124
10.110.104.151
10.110.104.156
10.110.104.157
10.110.104.158

转载于:https://blog.51cto.com/3229026/2335367

05-05
在网络搜索后,以下是关于"Moe in IT context"的相关技术和解释: Mixture of Experts (MoE) 是一种机器学习领域的技术框架,在IT领域中被广泛应用于大规模深度学习模型的设计与优化。它是一种模块化的神经网络结构,主要由多个专家子网络组成,并通过一个门控机制来决定哪些专家参与最终输出。 --- ### MoE 技术的核心概念 MoE 结构包括以下几个关键组成部分: - **专家(Experts)**:这些是独立的子网络,负责处理特定的任务或特征空间的一部分。 - **门控函数(Gating Function)**:用于分配输入样本给不同的专家,从而实现动态路由功能。 - **组合器(Combiner)**:将各个专家的结果加权合并以生成最终输出。 这种设计使得模型可以更高效地扩展规模,同时减少计算资源消耗。 --- ### 应用场景 1. 大型语言模型 在自然语言处理任务中,例如 GShard 和 Switch Transformer 等项目采用了 MoE 架构,显著提升了训练效率和推理性能。 2. 推荐系统 利用 MoE 方法可以根据用户行为选择最合适的推荐策略,提高个性化程度和服务质量。 3. 图像识别与分类 对于复杂的视觉任务,MoE 能够根据不同图像区域的特点激活相应专家进行精细化分析。 --- ### 实现方式 以下是一个简化的 PyTorch 示例代码展示如何构建基本的 Mixture of Experts 模块: ```python import torch import torch.nn as nn class Expert(nn.Module): def __init__(self, input_size, output_size): super(Expert, self).__init__() self.fc = nn.Linear(input_size, output_size) def forward(self, x): return torch.relu(self.fc(x)) class Gate(nn.Module): def __init__(self, num_experts): super(Gate, self).__init__() self.gate_fc = nn.Linear(num_experts, 1) def forward(self, expert_outputs): weights = torch.softmax(self.gate_fc(expert_outputs), dim=-1) return weights class MoEModel(nn.Module): def __init__(self, input_size, hidden_size, num_experts=4): super(MoEModel, self).__init__() self.experts = nn.ModuleList([Expert(input_size, hidden_size) for _ in range(num_experts)]) self.gate = Gate(num_experts) def forward(self, x): expert_outputs = torch.stack([expert(x) for expert in self.experts], dim=0) gate_weights = self.gate(expert_outputs.permute(1, 0, 2)) final_output = torch.sum(gate_weights * expert_outputs, dim=0) return final_output ``` --- ### 注意事项 尽管 MoE 提供了强大的建模能力,但在实际部署过程中需要注意以下几点: - 计算复杂度较高,可能需要分布式计算支持; - 数据分布不平衡可能导致某些专家利用率较低; - 参数调整较为困难,需仔细设置超参数如专家数量、隐藏层大小等。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值