seq -f 学习笔记

seq -w 宽度对齐,左边(整数部分)不够补0,与-f冲突
seq -s " " 指定分隔符,默认是"\n"回车
seq -f 格式化输出

探索了一下seq -f, 结果一发不可收拾,做个记录,CentOS7的环境。

seq -f “a%x.yfb” 初值m 递增值p 最大值n

a和b是打酱油的,一个加在数值之前,一个加在数值之后,如果数值长度未达到指定的x长度,会在某一边产生空隙;x y 是整数,其中y是非负数,不符合条件的数没意义不卖傻。

[root@kms-server ~/test]# seq -f "a%4.1fb" 9 10 
a 9.0b
a10.0b

y表示小数长度,而且是严格限制:超过长度时四舍五入。

当格式中小数点不存在时,即没有输入y值,此时默认为6位小数。

[root@kms-server ~/test]# seq -f "%f" 1 2
1.000000
2.000000

当小数点存在时,y的值是多少就有多少位小数,超出部分四舍五入,如果未给y赋值,则没有小数。

[root@kms-server ~/test]# seq -f "%.2f" 1.777 3.777
1.78
2.78
[root@kms-server ~/test]# seq -f "%.f" 1.777 3.777 
2
3

x表示总长度边界包括整数部分、小数部分、小数点和"-"号,为不严格限制:当x长度不足以显示当前值,会自动往右补足位数。x不存在时,当成x=0;

[root@kms-server ~/test]# seq -f "%1.f" 1 2
1
2
[root@kms-server ~/test]# seq -f "%5.f" 1 2
    1
    2

x>=0时,靠右对齐;此时如果x>0但首位仍然是0,表示有空余的数位时补0,相当于seq -w

[root@kms-server ~/test]# seq -f "a%4.fb" 9 10 
a   9b
a  10b
[root@kms-server ~/test]# seq -f "a%04.fb" 9 10
a0009b
a0010b

x<0时,靠左对齐;

[root@kms-server ~/test]# seq -f "%-10fb" 1 2
1.000000  b
2.000000  b

再看3个数值参数:

初值m 递增值p 最大值n

当只给出一个数值时:

[root@kms-server ~/test]# seq -f "%5.f" 3
    1
    2
    3

给出的是最大值,初值和递增值为默认的1

当先后给出两个数值时:

[root@kms-server ~/test]# seq -f "%5.f" -1 1 
   -1
    0
    1

给出的是分别是最小值和最大值,递增值仍然为1

当先后给出三个数值时:

[root@kms-server ~/test]# seq -f "%5.f" 3 -2 -3
    3
    1
   -1
   -3

如果这三个参数有浮点数,他会怎样四舍五入呢?

[root@kms-server ~/test]# seq -f "%.1f" -3.88 2 2 
-3.9
-1.9
0.1

这个好像看不出什么

换一个:

[root@kms-server ~/test]# seq -f "%.1f" 2.149 2.149 8
2.1
4.3
6.4

第一个数2.1正常
第二个数2.1+2.1=4.2?
或者2.1+2.149=4.249≈4.2?
都不是4.3,显然他只能通过2.149+2.149=4.298≈4.3得到

[root@kms-server ~/test]# seq -f "%.3f" 2.1 2.149 8
2.100
4.249
6.398
[root@kms-server ~/test]# seq -f "%.3f" 2.149 2.1 8
2.149
4.249
6.349
[root@kms-server ~/test]# seq -f "%.3f" 2.149 2.149 8
2.149
4.298
6.447

这样看就明显了,会发现只有通过初值2.149不断的累加2.149,然后所有的值四舍五入精确到一位小数,才能和%.1f下所有的值匹配,任何一边提前四舍五入都会有偏差。所以它是先把所有的值都精确的计算完毕后,再四舍五入得出的结果。

seq -f “a%x.ygb” m p n

这个格式也是允许的,和上面规则中的绝大部分一致,最大的区别是:
该格式下的y表示有效数是几个,同样是严格限制,因此,如果整数部分的长度已经超出y的限制,将会出错,而且这和总长度x没有关系,至于小数部分的长度只能是浮动的。

[root@kms-server ~/test]# seq -f "%5.2g" 0.123 20 110.456   
 0.12
   20
   40
   60
   80
1e+02
seq2seq-attention是指在seq2seq模型中引入了注意力机制(Attention)。在传统的seq2seq模型中,编码器将输入序列转化为一个固定长度的向量,然后解码器将这个向量解码成输出序列。而在seq2seq-attention模型中,解码器在每个时间步都会根据输入序列的不同部分给予不同的注意力权重,从而更加关注与当前时间步相关的输入信息。这样可以提高模型对输入序列的理解能力,进而提升预测的准确性。引入注意力机制后,seq2seq-attention模型在翻译、文本摘要和问答等任务上有着更好的表现。\[1\]\[2\] #### 引用[.reference_title] - *1* [NLP自然语言处理之RNN--LSTM--GRU--seq2seq--attention--self attetion](https://blog.csdn.net/weixin_41097516/article/details/103174768)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [自注意力机制(Self-Attention):从Seq2Seq模型到一般RNN模型](https://blog.csdn.net/qq_24178985/article/details/118683144)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值