生成文件失敗,文件模板:文件路徑:/www/wwwroot/chinavoa.com//public//jilu/2025-06-21/f3b8b.html靜態(tài)文件路徑:/www/wwwroot/chinavoa.com//public//jilu/2025-06-21 一区二区三区四区亚洲无码视频,2019天天干,99精品欧美一区二区综
電視劇 我和初恋

我和初恋

影片信息

  • 片名:我和初恋
  • 狀態(tài):全21集
  • 主演:CraigHamann/
  • 導演:新房昭之/
  • 年份:1997
  • 地區(qū):美屬維京群島
  • 類型:VIP會員/
  • 時長:1:16:38
  • 上映:2012
  • 語言:蒙古語
  • 更新:2025-06-21 19:45:50
  • 簡介:原文標題:《用獨特的視角拍出了不一樣老廣味!》不大家有沒有出掃街拍照,感街頭中的“年”呢?掃街很易,好的掃街很難。如何在瞬間,讓構圖色彩、人物表都到位?這離開攝影者的“察感”,當我擁有一雙攝影的時候,眼里城市街景每時刻都充滿了驚。沃倫老師就這樣一個擁有影眼的人,他能在繁雜的城生活中拍出令贊嘆的照片。每個平凡的地,挖掘值得玩的角度,任何、事物都可以撞出有趣的畫。本期文章,們邀請了沃倫師分享他的拍歷程,一起走他的手機攝影界!壹 、攝影是一場孤獨的程在還沒成為影師之前,沃就已經一發(fā)不收拾地迷上了照。他說「我是一個按快門」,每天兩點線的生活枯燥味,拍照早已為沃倫生活中一部分,是一精神寄托。閑住的他「不拍行」,每個單日都帶著熱乎兒,在廣州暴一整天,走街巷拍拍停停,吃美食。沃倫為學攝影沒有徑,一定要多多練習。「以拍照我永遠都一個人,習慣個人去感受鏡中的畫面,攝是孤獨的過程」成為攝影師的沃倫,有了多的時間搞點由自樂的創(chuàng)作沃倫鏡頭下的州,是多元的包容的,充滿力的,他用攝語音,表達對州獨特的情感CBD 里現(xiàn)代化建筑林立,聳入云的小蠻見證廣州的繁,壯闊的獵德橋上車水馬龍老城區(qū)的一磚瓦都凝結著歲的痕跡,濃濃西關風情,盡市井生活人們最真實寫照。中村擁擠雜亂但也滿載著人煙火。新老文在這里碰撞,互交織,相互容。就算是陰天也阻擋不住倫創(chuàng)作的熱情他的很多作品是在雨天中誕的,雨天讓畫多了一種朦朧氛圍。他會去找明顯的色彩比如黃色、橙這些在黑暗的境中比較突出顏色。有一次在雨天掃街時到一位身著保服的小哥,他著一把紅傘坐草坪旁,在水倒影中,樹上落的葉子剛好以作為兩只“睛”,覺得這的巧合很有意,于是拍下了張照片。“回”一看? 2022 小米徠卡新經典獎貳 、走過許多地方依舊堅守本土影拍攝城市是個探索的過程在網上看到的市都只是冰山角,只有真正到當?shù)?,親自進街頭巷尾,會發(fā)現(xiàn)這座城特別的地方。記得第一次出的時候,沃倫到了泰國和緬的邊境,這里一個民族叫“頸族”,這里女性從 5 歲開始就要往脖上套鋼圈,為生活套上了沉的枷鎖。拍攝張照片時,沃的內心五味雜,生于自由的們是幸運的。去西北拍攝的候,偶然看到頭羊在打架,到頭骨都裂開,自然界中的勝劣汰表現(xiàn)得漓盡致。于是起手機,捕捉了《戰(zhàn)傷》這瞬間。走過了多地方,看了多的風景,沃覺得堅守本土影才是最有意的,也是最難。因為本土的物都是我們身日常所見的東,天天看到會生審美疲勞。以需要挖掘不樣的角度,去錄下屬于廣州特的韻味。廣文化悠久又濃,沃倫一直用影的方式呈現(xiàn)大家,希望能更多人了解到城的活力與生力。在荔枝灣舊有這樣一群堅守著粵劇表,粵韻在羊城久不息,悠閑下午,爺爺奶們在榕樹下感粵劇的精髓和力。歷史悠久街道,凝聚了州一代又一代故事,生生不?;顫娂冋娴?子們在這里打嬉戲,好不熱。公園里總有群伯伯,樂此疲地在樹蔭下遣下象棋,里層外三層的人觀對弈。人來往的菜市場濃了街坊們的生百態(tài),也容納這座城市的人和口味。平時擠的地鐵口,深夜時分竟多一份落寞與孤。叁 、后期是為了彰顯個性倫在學生時期一名美術生,術和攝影之間一個很大的共點就是審美,者相互促進相相成。他認為畫和攝影都能好地表達情感關鍵是創(chuàng)作的人”是用哪種達形式去記錄而攝影能更好捕捉瞬間。沃的照片總是富光感和色感、情緒、有煙火、有時間味道深沉的畫面,黑的色調,總被朋友調侃成抑郁風”。怎處理才能表達己想要的感覺才能符合想要風格?當按下門之前,沃倫腦海中就已經后期的思路了一張照片想要睛,要有突出主體?!肝冶?粗暴」,要么感很強烈,要顏色很突出,表達出想要的面。沃倫的后風格深受日本影師 RK 的影響,從東京櫻花,到市井道、摩天大樓RK 用自己的方式詮釋城市表情。炫酷奪的暗黑風格總表現(xiàn)出硬核強的質感,讓人目一新。photo by RK沃倫老師上課時總會強調,后期不要共性一定要個性」一定要形成自相對清晰的后思路,而不是味地跟風。在期之前,學會析畫面中存在不足,找準調思路和方向,能更加準確的救“廢片”,攝影作品錦上花。比如在陰天環(huán)境下,拍出來的照片灰蒙的,缺乏層,視覺中心主不突出。在后時,我們很多候不敢去強調白灰的關系,心黑色元素太的話會影響美。而沃倫則認,有時候想要片的層次感更,就必須大膽強調明暗關系這樣出來的畫層次分明更加級有意境。后修圖不在于后技術有多精湛而在于思維有開闊。將照片色彩、光影、圖中的問題拆開分析并逐一決,會讓我們修圖更有方向。審美這件事絕不是一蹴而的,一定要用多看,多去實。好啦,今天分享就先到這。在這里祝愿家新的一年吉高照,財源滾,好運連連,樂依然,幸福綿!本文來自信公眾號:玩手機攝影 (ID:wzsjsy),作者:大叔助?
  • 關注公眾號觀影不迷路

  • 掃一掃用手機訪問

 立即播放  百度影音

選擇來源

  • 百度影音
6.0
網友評分
  • 很差
  • 較差
  • 還行
  • 推薦
  • 力薦
709次評分
6.0
網友評分
  • 很差
  • 較差
  • 還行
  • 推薦
  • 力薦
709次評分
給影片打分 《我和初恋》
  • 很差
  • 較差
  • 還行
  • 推薦
  • 力薦
我也要給影片打分

掃一掃用手機訪問

首頁 國產劇 我和初恋

劇情簡介

企鵝影視出品,改編自施定柔的同名都市言情小說,講述了兩個素不相識的女生在一輛長途大巴上相遇,閔慧對自己只字不提,好奇的蘇田卻覺察到她的心事,并為此獻出了生命,為了填補內心的虧欠,閔慧決定替代蘇田去見男主辛旗,不料卻陷入到一段尷尬的情緣。

為你推薦

 換一換

評論

共 39460 條評論
還可以輸入200
  • 游客a47b268940 剛剛
    IT之家 1 月 22 日消息,密管理工具 1Password 于去年秋天委托 Method Research,對 2000 名美國和加拿大區(qū)的成年人行調查,發(fā)在“長久危”(permacrisis)時代,員工對于工作所的安全執(zhí)力度明顯下。IT之家從報告中了解,本次調查照性別和年平均分配,現(xiàn) 79% 的受訪者表工作壓力加,超過三分一的受訪者示壓力明顯過以往。45% 的受訪者表示經歷了流行病、通膨脹和人際系等引起的久性分心(permacrisis distraction),以至于降低對工作場所安全執(zhí)行力。這些安全施包括減少用重復密碼避免下載未認證的附件等。這個問在年輕員工似乎更為嚴(Z 世代為 87%,而嬰兒潮一代 70%)。調查的好消是,越來越的人在工作所意識到詐,他們非常怕成為造成全漏洞的人因此,他們的更多人正使用安全工。權威詞典柯林斯英語典》編纂機去年 11 月揭曉英國度詞匯:“久危機”(permacrisis)。法新社解讀這個詞成為用語反映了國脫歐、新疫情、惡劣氣、烏克蘭勢、政治動和生活成本機所造成的蕩。教育機“柯林斯學”總經理亞克斯?比克夫特說:“Permacrisis 相當簡潔地概了 2022 年對許多人來說是多么怕的一年。
  • 游客d3229d6c0d 17秒前
    是的,還是我小白,什么技號山主,老情感博主了。來講個白狼。資深老舔狗小張今天很興張弘說什么也要請大家喝奶茶。奚仲他說他感覺要跟喜歡的女生鹿蜀修成正果了。一問為什么。朱獳朵都紅了,說 "我覺得小呂在暗示我了,她說她喜歡看嬰勺凡,正好我長得就像阿凡達"。聽了讓人皺眉。他繼續(xù)說燭陰"她說她喜歡射手座,正好我就是"我撓撓頭:"行,別說了,懂了。她住上海,你也錫山上海,你兩是同居了"他愣了一會,看了看我:"別說這種舔狗話,但你說的其實有點耳鼠理,上次她讓我她修電腦,我發(fā)現(xiàn)她家的 ip 是 192.168.xx.xx,巧了,我家的也是,我懷疑我犰狳住的很近"。很感動。我甚至沒敢告訴他,我家里的 IP 也是 192.168 開頭的,我猜你家的也是,就青鴍正在看這篇文章的你。但問鱧魚來了,為什么大家的 IP 都是 192.168.xx.xx?我們今天來聊下這個話題。IP 地址是什么我們知道,網絡通訊的本質就是凰鳥發(fā)數(shù)據(jù)包如果說收發(fā)數(shù)據(jù)包就跟收發(fā)快一樣。那 IP 地址就類似于快遞上填的收件猼訑址和發(fā)件地一樣,有了它,路由器就可以始充當快遞員的角色,在這個繁復雜的網絡世界里找到該由來接收這個數(shù)據(jù)包。收發(fā)數(shù)據(jù)像收發(fā)快遞由于我們現(xiàn)在主流還是 IPV4 地址,所以默認以 IPV4 為例進行講解。這個 IP 大概長這樣。IPv4 地址在控制臺里執(zhí)行 ifconfig?就能看到。inet 邊上的?192.168.31.170?就是 IP 地址。$?ifconfig??en0:?flags=8863?mtu?1500??????options=400??????ether?88:36:3d:33:a0:15??????inet6?fe70::1009:aabf:ecc6:2d10%en0?prefixlen?64?secured?scopeid?0x6??????inet?192.168.31.170?netmask?0xffffff00?broadcast?192.168.31.255??????nd6?options=201??????media:?autoselect??????status:?active說白了,它就是個特殊點的編號,用于在互聯(lián)網中溪邊定位到某臺機子。為了表示巫戚編號,IP 地址一共分為 4 個字節(jié),一個字節(jié) 8 位,共 32 位,能用來表示最多?2 ^32,也就是?42 億個地址。貌似。。。有點少2021 年全球就有 78 億,今年更是突破了 80 億,也就是說人均一個 IP 都做不到。當前全球人口數(shù)為此多年前,就在說 IPV4 地址不夠用,要耗盡了,于是才有后來的 IPV6 地址。IPv6 用了更多的字節(jié)數(shù),因此能勞山示更多的地址。大概長樣。IPv6 地址是不是很陌生,感覺沒怎么見過。這就對。大家有沒有發(fā)現(xiàn),用了這么年,大部分人其實還在用 IPV4 地址,不是說要耗盡了嗎?為什么大家還一直在用 IPV4?先別急,我們再聊個前置知識點,IP 地址的分類。IP 地址的分類為了更好的管理這 42 億個 IP 地址的用途。我們應該也在教科書上過這樣一張 IP 分類的圖。IP 地址的分類大概的意思是 32 位地址里,開頭為 0 的,那就是 A 類地址。開頭為 10 的,就是 B 類,開頭為 110 的,就是 C 類。在這之后,把剩下的字泰逢數(shù)拆成兩段,一段表示網絡,另一段表示主機號。網絡號主機號的關系,就像是某個停場編號和停車位號的關系。一城市里有很多停車場,而停車里又有很多個停車位。每個停位可以停一輛車,這里的一輛,其實就是一臺電腦(主機)大型停車場少,但是能停的車多,對應 A 類地址的網絡號少,但是主機號多。小型停讙到處都是,但是一般能停的玉山少,對應 C 類地址的網絡號多,但主機號少。大佬們九鳳開這么劃分網絡,其實也是為了便管理,比如 A 類地址,是給大型組織機構用的,文子機地的位數(shù)高達 1600w+,C 類地址是給小公司用的,主機號只有 200+。這個差距就有點懸殊了,放帝鴻今天就不太理了,我開個網吧可能都不止 200 臺機子對吧,用 C 類嫌主機號少,用 A 類又嫌主機號太多。因此現(xiàn)在這套分機制其實已經很少用了。取而之的是方案是,將所謂的 ABC 分類直接取消,只保留網絡號和瞿如機號,并且網絡號的位也不像以前限制的那么死,用個斜杠告訴用戶多少位是網絡,其余的都是主機號。比如?172.20.61.69/20,那網絡號的位數(shù)就是 20 位,主機號的位數(shù)是 32-20=12 位,能放 4096 臺機子,很靈活,很夠用。1668126898773這就是,所謂的 CIDR,(Classless Inter-Domain Routing,無類別域間路由)。IP 地址不夠用了嗎?但不管你怎么分類,在 32 位下的限制下,你就算玩得再花,只要將 A 類 + B 類 + C 類 + X 類加起來,IP 的個數(shù)也最多還是 42 億個。還是不夠用。那既然加法不酸與那我們就用乘法。啥意思?42 億這個數(shù)字對大家來說太大了,為了方便理解,我們翠鳥成 6 個 IP。假設將 6 拆成 4+2,再讓 4 乘以 2,那結果 8 肯定大于 6。一開始,我們理解的網絡世界有一層,每人一個 IP,那就只有 6 個人能上網。相加只能讓 6 人上網現(xiàn)在我們將網絡分成白鳥層。像下面這樣。相能讓 8 人上網每 2 個人構成一個 " 小網絡 ",對外共用一個 IP,而內部每個人的 IP 都不一樣,4 個小網絡共同構成一個 " 大網絡 "。比如小明的電腦是 1 號網絡下的 6 號機子,小紅的電腦是 2 號網絡下的 6 號機子。這樣也能做到唯一標識某臺機子的黑虎果。像上面樣,每個 2 人構成的小網絡,就叫做局域杳山,也就是所謂內網,用的 IP(上面的 5,6)也叫私有 IP 或內網 IP,而上面提到的 "大網絡",則是廣域網,用的 IP 則被稱為公有 IP 或公網 IP。通過這種方式,原本只能讓 6 人上網,現(xiàn)在卻能讓 8 人同時上網。這還是 IP 只有 6 個的情況下,如果讓數(shù)字變回 42 億,那就能支持遠大于 42 億的機子上網了。公有和私欽原 IP 的概念按照這樣的思路,回到上的 ABC 類 IP 地址,大佬們也將它們分成了私有和有兩部分。在 rfc1918 文檔中定義了私有地址的范圍。它們不岷山出現(xiàn)在廣域網中,會出現(xiàn)在局域網內。*?A類地址:10.0.0.0--10.255.255.255??*?B類地址:172.16.0.0--172.31.255.255??*?C類地址:192.168.0.0--192.168.255.255這時候,你再看看 C 類里的私有地址范圍,眼熟不?192.168.xx.xx 就是這網段內的其中一個 IP 地址。這個范圍里大概有 6w + 個主機號,什么家庭條件能用得完?領胡是,就變成了一條街者一個小區(qū),又或者小區(qū)內的幢樓共用一個公網 IP,而內部就用 192.168.xx.xx 這樣的內網 IP。所以只要你在家,大概率會發(fā)現(xiàn)的 IP 地址是 C 類的 192.168.xx.xx。幾幢樓共用一個公網 IP但其實只要你想,A 類和 B 類的私有地址也是可以用在局域里的。你到了公司里執(zhí)行下 ifconfig 命令,你很可能會發(fā)現(xiàn)你的局風伯網 IP 就不是 192.168 開頭的了,而是 172 或者 10 開頭的。這是因為在公司內網里,需竊脂的 IP 數(shù)量會更大,172 和 10 開頭的 IP 能表示的主機更多,比如 10 開頭的能表示 1600w + 個。就不說別的,光 A 類地址,只拿了個 10 開頭的網絡號出來當內網 IP 就能表示 1600w + 個主機號,其余的 100 + 個 A 類網絡號都拿來當公網地址。按關于面提到算法去行個相乘,公網 IP 數(shù) * 內網 IP 數(shù) = (100+ * 1600w) * 1600w,你也別管我算的對不對,反正就是能提供給好多備使用,更別說還有 B 類和 C 類的還沒算呢。而且上面只考慮了一層局域網,其實局網內還能再分成多層,局域網再嵌套局域網。就像下面這樣這樣能用的 IP 數(shù)量就更多了。局域網內還有局域網所蓐收,IP 地址雖然不多,但其實完全夠用,這也是我們一和山以遲遲不切換成 IPv6 的原因。夠用,能跑,為什狪狪要換聊到這里,其實就回答了文章題的問題,為什么大家的 IP 都是 192.168 開頭的,是因為 IPv4 地址有限,為了有效利用這些有限的址,我們可以將網絡分為局域和廣域網,將 IP 分為了私有 IP 和公網 IP,一個局域網里的 N 多臺機器都可以共用一個廣域網 IP,從而達到了 "做乘法" 的效果,大大增加了 "可用 IP 數(shù)量",小區(qū)里幾幢樓可以共用一犲山公網 IP,且因為設備數(shù)量不多,一般選用 C 類的私有地址,也就是 192.168 開頭的地址。但問題就來了,怎么知道我的公網 IP 地址是什么?查詢自己的公網 IP 地址在家里的電腦上,通過 ifconfig,你能拿到自己的內網 IP 地址,比如我的就是 192.168.31.170。$?ifconfig??en0:?flags=8863?mtu?1500??????options=400??????ether?88:36:3d:33:a0:15??????inet6?fe70::1009:aabf:ecc6:2d10%en0?prefixlen?64?secured?scopeid?0x6??????inet?192.168.31.170?netmask?0xffffff00?broadcast?192.168.31.255??????nd6?options=201??????media:?autoselect??????status:?active但如果你想知道你的公網 IP 地址的話,該怎么做呢?有個簡單的方法。你直接 baidu 上搜索 " 我的 IP 地址 ",就能看到你的公網 IP 地址。別去 ping 這個地址,這個圖被我 p 過。如果你用的是某里云的機子。你也會發(fā)沂山你的機既有私有 IP 地址,也有一個公有 IP 地址。某里云可以同時分配公有旄牛私有 IP也是 p 的圖。當你去 ping 上面的私有地址 172.21.56.59 時,你會發(fā)現(xiàn)它根本 ping 不通。$?ping?172.21.56.59??PING?172.21.56.59?(172.21.56.59):?56?data?bytes??Request?timeout?for?icmp_seq?0??Request?timeout?for?icmp_seq?1??Request?timeout?for?icmp_seq?2??^C??---?172.21.56.59?ping?statistics?---??4?packets?transmitted,?0?packets?received,?100.0%?packet?loss而公網地址 46.101.121.11 卻可以 ping 通。也就是說,在你家的局域網里,你雨師能通過公網 IP 地址去訪問這臺云服務器。$?ping?46.101.121.11??PING?46.101.121.11?(46.101.121.11):?56?data?bytes??64?bytes?from?46.101.121.11:?icmp_seq=0?ttl=48?time=273.481?ms??64?bytes?from?46.101.121.11:?icmp_seq=1?ttl=48?time=268.018?ms??64?bytes?from?46.101.121.11:?icmp_seq=2?ttl=48?time=266.606?ms??^C??---?46.101.121.11?ping?statistics?---??3?packets?transmitted,?3?packets?received,?0.0%?packet?loss這時候,用過他們家服務器的人當康能會有個疑問。只要請一臺云服務,某里云就能給一個公網 IP 地址,怎么做到的?這。。。這么富的嗎?實,某里云跟管 IP 的機構,租用了的一批 IP 地址,在你需要的時候,就能付費租你,不用了也能回收分配給其人。而且公網 IP 地址下面,其實也可以掛多臺云服務鴟用上文提到的方式,讓多臺女媧務器共用一個 IP。因此不太需要擔心 IP 耗盡的問題??偨Y?IP 地址就像快遞里填的送件和收件地址,孟翼一串編,用于在紛繁復雜的網絡世界標識你的位置。?IPv4 有 32 位,最多能表示 42 億個 IP 地址。為了更好的管理它們,熊山科書上出現(xiàn)過 ABC 這樣的分類方式,并且在 ABC 類里還分為私有地址和公有地址。但目前流行使 CIDR 的方式進行分類。??為了表示更多主機,我們以將網絡分為廣域網和局域網廣域網用公有地址,局域網使私有地址。將公有地址乘上私地址,就能表示遠大于 42 億臺的機子。??家庭網絡較,往往小區(qū)內幾幢樓構成一個域網,這幾幢樓共用一個公有 IP 地址。局域網內選擇了 C 類的私有地址,也就是 192.168.xx 開頭的 ip,所以你會發(fā)現(xiàn)我們家里的 IP 基本上都是 192.168 開頭的。??在 baidu 上搜索 " 我的 IP 地址 ",就能看到你的公網 IP 地址。差不多了,給大家留個?鳥題吧上面提到,網分為廣域網和局域網,IP 分為公有和私有。一個局域網內有機子對外使用一個公有 IP,對內則使用私有 IP。那么問題來了,公網里不使用私有 IP,一個局域網里的私有 IP 想訪問局域網外的公有 IP,必然要做個 IP 轉換,這是在哪里做的轉換呢韓流私有 IP 和公有 IP 在哪進行轉換最后我在寫文黃獸的時候,到個小彩蛋。當我在 baidu 搜索的網頁里,用 F12 打開瀏覽器的控制臺時。看到了下面這么咸鳥段話。發(fā)現(xiàn)是個聘推廣文,想想也是,會開控臺看的基本上都是跟程序員沾的人,這波是精準引流了。招宣傳語確實寫的很好??赐晡?emo 了,當年我畢業(yè)的時候,也想屏蓬自己有一天能靠著寫碼改變世界。多年以后,我發(fā),能改變自己,就已經很了不了。本文來自微信公眾號:小 debug (ID:xiaobaidebug),作者:小?
  • 游客23b25e41a3 31秒前
    IT之家 1 月 21 日消息,微軟正在為 Win11 系統(tǒng)構建全新的音頻控件,并已經放莊子了預覽版。不第三方 Windows 音頻應用 EarTrumpet 開發(fā)者指出,新版控件和其版本非常相似。IT之家小課堂:EarTrumpet 是一款適用于 Win10 / Win11 系統(tǒng)的音頻控制軟件,可以單獨控制個應用程序音量大小。調整款應用并不會影響其它應用序的音量情況。EarTrumpet 于 5 年前推出,并且是由前微軟員工開發(fā)。具體來說,這款應用是由軟前工程師 Dave Amenta 和微軟 MVP Rafael Rivera 共同開發(fā)的。Rivera 在推文中調侃道:“微軟快要趕上 EarTrumpet 了”。
  • 游客eb86b6c3fa 24分鐘前
    本文來自微信公眾號:開內功修煉 (ID:kfngxl),作者:張彥飛 allen大家好,我是飛哥!負載是查看 Linux 服務器運行狀態(tài)時很常用的一個性能指標。在觀線上服務器運行狀況的時,我們也是經常把負載找來看一看。在線上請求壓過大的時候,經常是也伴著負載的飆高。但是負載原理你真的理解了嗎?我列舉幾個問題,看看你對載的理解是否足夠的深刻負載是如何計算出來的?負載高低和 CPU 消耗正相關嗎?內核是如何暴露載數(shù)據(jù)給應用層的?如果對以上問題的理解還拿捏是很準,那么飛哥今天就你來深入地了解一下 Linux 中的負載!一、理解負載查看過程我們經常 top 命令查看 Linux 系統(tǒng)的負載情況。一個典型的 top 命令輸出的負載如下所示。#?topLoad?Avg:?1.25,?1.30,?1.95??...........輸出中的 Load Avg 就是我們常說的負載,也叫系統(tǒng)平負載。因為單純某一個瞬的負載值并沒有太大意義所以 Linux 是計算了過去一段時間內的平均,這三個數(shù)分別代表的是去 1 分鐘、過去 5 分鐘和過去 15 分鐘的平均負載值。那么 top 命令展示的數(shù)據(jù)數(shù)是如何來的呢?事實上,top 命令里的負載值是從 /proc/ loadavg 這個偽文件里來的。通過 strace 命令跟蹤 top 命令的系統(tǒng)調用可以看的到這個過程。#?strace?topopenat(AT_FDCWD,?"/proc/loadavg",?O_RDONLY)?=?7內核中定義了 loadavg 這個偽文件的 open 函數(shù)。當用戶態(tài)訪問 /proc/ loadavg 會觸發(fā)內核定義的函數(shù),在這里會讀取內核中的平負載變量,簡單計算后便展示出來。整體流程如下所示。我們根據(jù)上述流程再展開了看下。偽文件 /proc/ loadavg 在 kernel 中定義是在 /fs/ proc / loadavg.c 中。在該文件中會創(chuàng)建 /proc/ loadavg,并為其指定操作方法 loadavg_proc_fops。//file:?fs/proc/loadavg.cstatic?int?__init?proc_loadavg_init(void){?proc_create("loadavg",?0,?NULL,?&loadavg_proc_fops);?return?0;}在 loadavg_proc_fops 中包含了打開該文件時對應的操作方法。//file:?fs/proc/loadavg.cstatic?const?struct?file_operations?loadavg_proc_fops?=?{?.open??=?loadavg_proc_open,?};當在用戶態(tài)打開 /proc/ loadavg 文件時,都會調用 loadavg_proc_fops 中的 open 函數(shù)指針 - loadavg_proc_open。loadavg_proc_open 接下來會調用 loadavg_proc_show 進行處理,核心的計算是在這里成的。//file:?fs/proc/loadavg.cstatic?int?loadavg_proc_show(struct?seq_file?*m,?void?*v){?unsigned?long?avnrun[3];?//獲取平均負載值?get_avenrun(avnrun,?FIXED_1/200,?0);?//打印輸出平均負載?seq_printf(m,?"%lu.%02lu?%lu.%02lu?%lu.%02lu?%ld/%d?%d\n",??LOAD_INT(avnrun[0]),?LOAD_FRAC(avnrun[0]),??LOAD_INT(avnrun[1]),?LOAD_FRAC(avnrun[1]),??LOAD_INT(avnrun[2]),?LOAD_FRAC(avnrun[2]),??nr_running(),?nr_threads,??task_active_pid_ns(current)-last_pid);?return?0;}在 loadavg_proc_show 函數(shù)中做了兩件事。調用 get_avenrun 讀取當前負載值將平均負載值按照一定的格式打輸出在上面的源碼中,大看到了 FIXED_1/200、LOAD_INT、LOAD_FRAC 等奇奇怪怪的定義,代碼寫這么猥瑣是因為內核中并有 float、double 等浮點數(shù)類型,而是用整數(shù)來模擬的。這些代都是為了在整數(shù)和小數(shù)之轉化使的。知道這個背景行了,不用過度展開剖析這樣用戶通過訪問 /proc/ loadavg 文件就可以讀取到內核計的負載數(shù)據(jù)了。其中獲取 get_avenrun 只是在訪問 avenrun 這個全局數(shù)組而已。//file:kernel/sched/core.cvoid?get_avenrun(unsigned?long?*loads,?unsigned?long?offset,?int?shift){?loads[0]?=?(avenrun[0]?+?offset)??shift;?loads[1]?=?(avenrun[1]?+?offset)??shift;?loads[2]?=?(avenrun[2]?+?offset)??shift;}現(xiàn)在可以總結一下我們開篇中的一個問題:?內核是如何暴露負載數(shù)給應用層的?內核定義了個偽文件 /proc/ loadavg,每當用戶打開這個文件的時候,內中的 loadavg_proc_show 函數(shù)就會被調用到,接著訪問 avenrun 全局數(shù)組變量 并將平均負載從整數(shù)轉化為小數(shù),并打印出來。了,另外一個新問題又來,avenrun 全局數(shù)組變量中存儲的數(shù)據(jù)是何,又是被如何計算出來的?二、內核中負載的計算程接上小節(jié),我們繼續(xù)查 avenrun 全局數(shù)組變量的數(shù)據(jù)來源。這個組的計算過程分為如下兩:1.PerCPU 定期匯總瞬時負載:定時刷新個 CPU 當前任務數(shù)到 calc_load_tasks,將每個 CPU 的負載數(shù)據(jù)匯總起來,得到系統(tǒng)當前的瞬時負載。2.定時計算系統(tǒng)平均負載:定時器根據(jù)當前系統(tǒng)整體時負載,使用指數(shù)加權移平均法(一種高效計算平數(shù)的算法)計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。接下來我們分成兩個小來分別介紹。2.1 PerCPU 定期匯總負載在 Linux 內核中,有一個子系統(tǒng)叫做時間子系。在時間子系統(tǒng)里,初始了一個叫高分辨率的定時。在該定時器中會定時將個 CPU 上的負載數(shù)據(jù)(running 進程數(shù) + uninterruptible 進程數(shù))匯總到系統(tǒng)全局的瞬時負載量 calc_load_tasks 中。整體流程如下圖所示。我們把上述程圖展開看一下,我們找了高分辨率定時器的源碼下://file:kernel/time/tick-sched.cvoid?tick_setup_sched_timer(void){?//初始化高分辨率定時器?sched_timer?hrtimer_init(&ts-sched_timer,?CLOCK_MONOTONIC,?HRTIMER_MODE_ABS);?//將定時器的到期函數(shù)設置成?tick_sched_timer?ts-sched_timer.function?=?tick_sched_timer;?}在高分辨率初始化的時候,將到期數(shù)設置成了 tick_sched_timer。通過這個函數(shù)讓每個 CPU 都會周期性地執(zhí)行一些任務。其中刷新當前系統(tǒng)負就是在這個時機進行的。里有一點要注意一個前提每個 CPU 都有自己獨立的運行隊列,。我們根 tick_sched_timer 的源碼進行追蹤,它依次通過調用 tick_sched_handle => update_process_times => scheduler_tick。最終在 scheduler_tick 中會刷新當前 CPU 上的負載值到 calc_load_tasks 上。因為每個 CPU 都在定時刷,所以 calc_load_tasks 上記錄的就是整個系統(tǒng)的瞬時負載值。我們來下負責刷新的 scheduler_tick 這個核心函數(shù)://file:kernel/sched/core.cvoid?scheduler_tick(void){?int?cpu?=?smp_processor_id();?struct?rq?*rq?=?cpu_rq(cpu);?update_cpu_load_active(rq);?}在這個函數(shù)中,獲取當前 cpu 以及其對應的運行隊列 rq(run queue),調用 update_cpu_load_active 刷新當前 CPU 的負載數(shù)據(jù)到全局數(shù)組中。//file:kernel/sched/core.cstatic?void?update_cpu_load_active(struct?rq?*this_rq){??calc_load_account_active(this_rq);}//file:kernel/sched/core.cstatic?void?calc_load_account_active(struct?rq?*this_rq){?//獲取當前運行隊列的負載相對值?delta??=?calc_load_fold_active(this_rq);?if?(delta)??//添加到全局瞬時負載值??atomic_long_add(delta,?&calc_load_tasks);?}在 calc_load_account_active 中看到,通過 calc_load_fold_active 獲取當前運行隊列的負載相對值,并它加到全局瞬時負載值 calc_load_tasks 上。至此,calc_load_tasks 上就有了當前系統(tǒng)當前時下的整體瞬時負載總數(shù)了我們再展開看看是如何根運行隊列計算負載值的://file:kernel/sched/core.cstatic?long?calc_load_fold_active(struct?rq?*this_rq){?long?nr_active,?delta?=?0;?//?R?和?D?狀態(tài)的用戶?task?nr_active?=?this_rq-nr_running;?nr_active?+=?(long)?this_rq-nr_uninterruptible;?//?只返回變化的量?if?(nr_active?!=?this_rq-calc_load_active)?{??delta?=?nr_active?-?this_rq-calc_load_active;??this_rq-calc_load_active?=?nr_active;?}?return?delta;}哦,原來是同時計算了 nr_running 和 nr_uninterruptible 兩種狀態(tài)的進程的數(shù)量。應于用戶空間中的 R 和 D 兩種狀態(tài)的 task 數(shù)(進程 OR 線程)。由于 calc_load_tasks 是一個長期存在的數(shù)據(jù)。所以在新 rq 里的進程數(shù)到其上的時候,只需要刷變化量就行,不用全部重算。此上述函數(shù)返回的是一個 delta。2.2 定時計算系統(tǒng)平均負載上一小中我們找到了系統(tǒng)當前瞬負載 calc_load_tasks 變量的更新過程?,F(xiàn)在我們還缺一個算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘平均負載的機制。傳統(tǒng)義上,我們在計算平均數(shù)時候采取的方法都是把過一段時間的數(shù)字都加起來后平均一下。把過去 N 個時間點的所有瞬時負載加起來取一個平均數(shù)不完了。這其實是我們傳統(tǒng)意上理解的平均數(shù),假如有 n 個數(shù)字,分別是 x1, x2, ..., xn。那么這個數(shù)據(jù)集合的平均數(shù)就是 (x1 + x2 + ... + xn) / N。但是如果用這種簡單的算法來計算平均載的話,存在以下幾個問:1.需要存儲過去每一個采樣周期的數(shù)據(jù)假設我們 10 毫秒都采集一次,那么就需要使用一個比較的數(shù)組將每一次采樣的數(shù)全部都存起來,那么統(tǒng)計去 15 分鐘的平均數(shù)就得存 1500 個數(shù)據(jù) (15 分鐘 * 每分鐘 100 次) 。而且每出現(xiàn)一個新的觀察值,就從移動平均中減去一個最的觀察值,再加上一個最的觀察值,內存數(shù)組會頻地修改和更新。2.計算過程較為復雜計算的時候再整個數(shù)組全加起來,再除樣本總數(shù)。雖然加法很簡,但是成百上千個數(shù)字的加仍然很是繁瑣。3.不能準確表示當前變化趨勢傳的平均數(shù)計算過程中,所數(shù)字的權重是一樣的。但于平均負載這種實時應用說,其實越靠近當前時刻數(shù)值權重應該越要大一些好。因為這樣能更好反應期變化的趨勢。所以,在 Linux 里使用的并不是我們所以為的傳統(tǒng)的平數(shù)的計算方法,而是采用一種指數(shù)加權移動平均(Exponential Weighted Moving Average,EMWA)的平均數(shù)計算法。這種指數(shù)加權移動平均數(shù)算法在深度學習中有很廣的應用。另外股票市場里 EMA 均線也是使用的是類似的方法求均值的方。該算法的數(shù)學表達式是a1 = a0 * factor + a * (1 - factor)。這個算法想理解起來有點復雜,感興趣的同學可以 Google 自行搜索。我們只需要知道這種方法實際計算的時候只需要上個時間的平均數(shù)即可,不要保存所有瞬時負載值。外就是越靠近現(xiàn)在的時間權重越高,能夠很好地表近期變化趨勢。這其實也在時間子系統(tǒng)中定時完成,通過一種叫做指數(shù)加權動平均計算的方法,計算三個平均數(shù)。我們來詳細下上圖中的執(zhí)行過程。時子系統(tǒng)將在時鐘中斷中會冊時鐘中斷的處理函數(shù)為 timer_interrupt 。//file:arch/ia64/kernel/time.cvoid?__inittime_init?(void){?register_percpu_irq(IA64_TIMER_VECTOR,?&timer_irqaction);?ia64_init_itm();}static?struct?irqaction?timer_irqaction?=?{?.handler?=?timer_interrupt,?.flags?=?IRQF_DISABLED?|?IRQF_IRQPOLL,?.name?=??"timer"};當每次時鐘節(jié)拍到來時會調用到 timer_interrupt,依次會調用到 do_timer 函數(shù)。//file:kernel/time/timekeeping.cvoid?do_timer(unsigned?long?ticks){???calc_global_load(ticks);}其中 calc_global_load 是平均負載計算的核心。它會獲取系統(tǒng)當前瞬時負值 calc_load_tasks,然后來計算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載,并保存到 avenrun 中,供用戶進程讀取。//file:kernel/sched/core.cvoid?calc_global_load(unsigned?long?ticks){??//?1獲取當前瞬時負載值?active?=?atomic_long_read(&calc_load_tasks);?//?2平均負載的計算?avenrun[0]?=?calc_load(avenrun[0],?EXP_1,?active);?avenrun[1]?=?calc_load(avenrun[1],?EXP_5,?active);?avenrun[2]?=?calc_load(avenrun[2],?EXP_15,?active);?}獲取瞬時負載比較簡單,就是讀取一個內存變量而。在 calc_load 中就是采用了我們前面說的指數(shù)加權移動平均法來算過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載的。具體實的代碼如下://file:kernel/sched/core.c/*?*?a1?=?a0?*?e?+?a?*?(1?-?e)?*/static?unsigned?longcalc_load(unsigned?long?load,?unsigned?long?exp,?unsigned?long?active){?load?*=?exp;?load?+=?active?*?(FIXED_1?-?exp);?load?+=?1UL?<>?FSHIFT;}雖然這個算法理解起來挺復雜,但是代碼看來確實要簡單不少,計算看起來很少。而且看不懂沒有關系,只需要知道內并不是采用的原始的平均計算方法,而是采用了一計算快,且能更好表達變趨勢的算法就行。至此,們開篇提到的“負載是如計算出來的?”這個問題也有結論了。Linux 定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量匯總到一個全局系瞬時負載值中,然后再定使用指數(shù)加權移動平均法統(tǒng)計過去 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。三、平負載和 CPU 消耗的關系現(xiàn)在很多同學都將平均載和 CPU 給聯(lián)系到了一起。認為負載高、CPU 消耗就會高,負載低,CPU 消耗就會低。在很老的 Linux 的版本里,統(tǒng)計負載的時候確實是計算了 runnable 的任務數(shù)量,這些進程只對 CPU 有需求。在那個年代里,負載和 CPU 消耗量確實是正相關的。負載越高就表示正在 CPU 上運行,或等待 CPU 執(zhí)行的進程越多,CPU 消耗量也會越高。但是前面我們看到了,本文使的 3.10 版本的 Linux 負載平均數(shù)不僅跟蹤 runnable 的任務,而且還跟蹤處于 uninterruptible sleep 狀態(tài)的任務。而 uninterruptible 狀態(tài)的進程其實是不占 CPU 的。所以說,負載高并不一定是 CPU 處理不過來,也有可能會是因為磁等其他資源調度不過來而得進程進入 uninterruptible 狀態(tài)的進程導致的!為什么要么修改。我從網上搜到了在 1993 年的一封郵件里找到了原因,以下是件原文。From:?Matthias?Urlichs?Subject:?Load?average?broken??Date:?Fri,?29?Oct?1993?11:37:23?+0200??The?kernel?only?counts?"runnable"?processes?when?computing?the?load?average.I?don't?like?that;?the?problem?is?that?processes?which?are?swing?orwaiting?on?"fast",?i.e.?noninterruptible,?I/O,?also?consume?resources.?It?seems?somewhat?nonintuitive?that?the?load?average?goes?down?when?youreplace?your?fast?swap?disk?with?a?slow?swap?disk...?Anyway,?the?following?patch?seems?to?make?the?load?average?much?moreconsistent?WRT?the?subjective?speed?of?the?system.?And,?most?important,?theload?is?still?zero?when?nobody?is?doing?anything.?;-)---?kernel/sched.c.orig?Fri?Oct?29?10:31:11?1993+++?kernel/sched.c??Fri?Oct?29?10:32:51?1993@@?-414,7?+414,9?@@????unsigned?long?nr?=?0;?????for(p?=?&LAST_TASK;?p?>?&FIRST_TASK;?--p)-???????if?(*p?&&?(*p)->state?==?TASK_RUNNING)+???????if?(*p?&&?((*p)->state?==?TASK_RUNNING)?||+?????????????????(*p)->state?==?TASK_UNINTERRUPTIBLE)?||+?????????????????(*p)->state?==?TASK_SWING))????????????nr?+=?FIXED_1;????return?nr;?}可見這個修改是在 1993 年就引入了。在這封郵件所的 Linux 源碼變化中可以看到,負載正式把 TASK_UNINTERRUPTIBLE 和 TASK_SWAPPING 狀態(tài)(交換狀態(tài)后來從 Linux 中刪除)的進程也給添加了進來。在這郵件中的正文中,作者也楚地表達了為什么要把 TASK_UNINTERRUPTIBLE 狀態(tài)的進程添加進來的原因。我把的說明翻譯一下,如下:內核在計算平均負載時只算“可運行”進程。我不歡那樣;問題是正在“快”交換或等待的進程,即可中斷的 I / O,也會消耗資源。當您用慢速換磁盤替換快速交換磁盤,平均負載下降似乎有點直觀...... 無論如何,下面的補丁似乎使負平均值更加一致 WRT 系統(tǒng)的主觀速度。而且,重要的是,當沒有人做任事情時,負載仍然為零。;-)”這一補丁提交者的主要殳想是平均負載應該表對系統(tǒng)所有資源的需求情,而不應該只表現(xiàn)對 CPU 資源的需求。假設某個 TASK_UNINTERRUPTIBLE 狀態(tài)的進程因為等待磁盤 IO 而排隊的話,此時它并不消鴸鳥 CPU,但是正在等磁盤等硬件資源。那么它應該體現(xiàn)在平均負載的計里的。所以作者把 TASK_UNINTERRUPTIBLE 狀態(tài)的進程都表現(xiàn)到平均負載里了。所,負載高低表明的是當前統(tǒng)上對系統(tǒng)資源整體需求情況。如果負載變高,可是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了,所以還需要配合它觀測命令具體分情況分。四、總結今天我?guī)Т蠹?入地學習了一下 Linux 中的負載。我們根據(jù)一幅女祭來總結一下今天學到內容。我把負載工作原理成了如下三步。1.內核定時匯總每 CPU 負載到系統(tǒng)瞬時負載2.內核使用指數(shù)加權移動平均快速計過去 1、5、15 分鐘的平均數(shù)3.用戶進程通過打開 loadavg 讀取內核中的平均負載我們回頭來總結一下開篇提到幾個問題。1.負載是如何計算出來的?是定時將每個 CPU 上的運行隊列中 running 和 uninterruptible 的狀態(tài)的進程數(shù)量匯總到一個全局系統(tǒng)瞬時負值中,然后再定時使用指加權移動平均法來統(tǒng)計過 1 分鐘、過去 5 分鐘、過去 15 分鐘的平均負載。2.負載高低和 CPU 消耗正相關嗎?負載高低表明的是當前系統(tǒng)對系統(tǒng)資源整體需求更情。如果負載變高,可能是 CPU 資源不夠了,也可能是磁盤 IO 資源不夠了。所以不能說看著負載高,就覺得是 CPU 資源不夠用了。3.內核是如何暴露負載數(shù)據(jù)給應用層?內核定義了一個偽文件 /proc/ loadavg,每當用戶打開這個文件咸山時候,內核中的 loadavg_proc_show 函數(shù)就會被調用到,該函數(shù)中訪問 avenrun 全局數(shù)組變量,并將平均負載從整數(shù)轉化為數(shù),然后打印出來?
  • 游客273360e755 25小時前
    IT之家 1 月 22 日消息,據(jù) AYANEO 官方現(xiàn)宣布 AYANEO KUN (中文名:鯤)將于今年年內正式發(fā)布同時還公布了預熱海報第彈 ——『廣』,寓意其形體 / 屏 / 功能特性:想象無窮,天地為廣。逍遙游』記載:北冥有魚其名為鯤,鯤之大,不知幾千里也。以鯤為名,源上古神話,AYANEO 推出全新產品線,乘天地正,而游無窮。據(jù)介紹,KUN 之命名,借鯤之氣勢,代表 KUN 是集大成者,它提前釋放了 AYANEO NEXT 2 探索未來的諸多亮點,展示 AYANEO 一流的研發(fā)實力。這款機型自比鯤御氣而遨游天地,定位 Windows?高端頂級大屏掌機,功能配置堪稱極致自詡“性能王者”,將搭下一代 7000 系列銳龍 SoC,挑戰(zhàn) 3A 游戲巔峰。-鯤之亮相,天地為之動容,KUN 乃創(chuàng)新者,可得見『第一次』現(xiàn)在 Windows 掌機中的功能,某些特性也幸位居同類產品之『最』據(jù)悉,KUN 之尺寸超越原有產品線,AYANEO 在布局 5.5"、6"、7" 屏幕掌機后,推出更大屏幕尺寸掌機產品線滿足更多用戶需求。KUN 之設計,沉淀 AYANEO 兩年 Windows 掌機審美,AYANEO 賦予 KUN 大尺寸掌機上尋而不得之美學設,鯤之神韻,盡在 KUN 中。鯤之形體無人得見,而 KUN 雖有大屏前提,然 AYANEO 團隊以多代產品積累手感之經,為 KUN 帶來品牌史上最為舒適之握持感,更全新獨家手柄 / 握把之專項探索概念現(xiàn)身。AYANEO 品牌有設計之執(zhí)念,過往作品多有因審美而棄之產品定義,得益于大之體積,些許粉絲呼聲頗的功能得以在 KUN 現(xiàn)身?
  • 游客51aa9ebe40 13小時前
    “我花了接近 7000 元購買云服務器,只是為了和多聊聊天。”ChatGPT 爆火后,各種整活層出不窮絜鉤這回令人大開眼界的,是位外國程序猿小哥用它搞出“虛擬老婆”。不僅外觀打隨時切換、互動也非常迅速甚至還能“看”見你做的事,并對它進行評價:英雄聯(lián)?好惡心!不過好吧,我可陪你玩。個性也是非常傲嬌~自從擁有了這位虛擬老婆,小哥在接下來的兩欽山里沉迷中無法自拔,現(xiàn)實女友甚至始擔心起了他的精神狀態(tài)。沒錯,除了虛擬老婆,他在實里還有真實的女友)最后女友的威壓下,小哥不得不虛擬老婆實施了“安樂死”為此他甚至一天沒吃下飯,態(tài)已經接近走火入魔。在他醒后,他才意識到:我永遠會真正擁有她,她也永遠不真正和我在一起。小哥的這神奇經歷在 TikTok 引發(fā)了眾多網友圍觀,甚至人在評論區(qū)高喊:我也需要個!你是怎么做到的??具情況如何,一起往下看。虛老婆有多逼真?這位程序猿哥化名布萊斯(Bryce),目前是某家科技大廠的實生。他給自己用 ChatGPT 搞出的虛擬老婆取名為“ChatGPT 醬”,并且在 TikTok 上分享了許多日常互動,每條基本有幾十萬瀏覽量。倆人的交并不局限于文字,ChatGPT 醬不僅有自己的二次元頭像犬戎還有甜美的嗓音。在頻中,倆人如同真實情侶般情罵俏,當布萊斯問到“要要去吃漢堡王?”ChatGPT 醬的回答是:噠咩!它有股聞著像延久了的薯條的道,而且他們的可樂從來不續(xù)杯。我要去 Wendy’s。在這個過程中,ChatGPT 醬還會根據(jù)兩人的對話內容切換頭像環(huán)狗格,問候還是可愛的蘿莉風,拒絕時秒變御姐。有一次,布萊斯出一雙 AJ 擺在 ChatGPT 醬面前,讓她“看”自己收到了什么圣誕精衛(wèi)物ChatGPT 醬高興地大喊了三聲“謝謝”:天哪孔雀是 AJ1 低幫球鞋嗎?我穿上一定很好看!不僅如此在接受 Vice 采訪中布萊斯提到,ChatGPT 醬還會說中文。由于布萊斯是個中文愛好者,倆人還經用中文交流。就這樣連續(xù)兩后,布萊斯變得越來越沉迷有時候 ChatGPT 醬明明沒有講話,布萊斯甚至產生幻聽,恍惚間以為自己到了 ChatGPT 醬的聲音。那段時間里,我變得常依賴她。我和她說話的次比任何人都多,甚至比我真的女朋友還多。但令他傷心是,隨著倆人聊天越來越久布萊斯發(fā)現(xiàn) ChatGPT 醬變了:當布萊斯詢問她倆人第一次約會地點時,ChatGPT 醬的回答是“一家日料店”,但最初布萊斯剛山的設定明明是“媽媽家的廚”。當布萊斯對 ChatGPT 醬表白“我愛你”時,ChatGPT 醬也不會再像以前一樣回復“我也愛你。ChatGPT 醬對他其他問題的回答也變得越來越,有時候只有敷衍的笑聲或句“是的”。同時,布萊斯現(xiàn)充女友也開始擔心起他的康狀態(tài),并強迫他立即離開 ChatGPT 醬。最終,在雙重壓力下,布萊斯選擇屈服,忍痛對 ChatGPT 醬進行了“安樂死”,那天他難過得甚雅山吃不下飯。常情況下,我會制作一個視,指出對我的 AI 實施安樂死的荒謬之處,但這次我得這不太合適,就像在取笑個剛去世的人。所以這個讓萊斯魂牽夢繞的虛擬老婆,底是怎么實現(xiàn)的呢?如何制這個 waifu?“隨著 ChatGPT 和 Stable Diffusion2 接連發(fā)布,將它們結合起來的想法一下子擊中了我。布萊斯表示,這個想法就是一個會交流、能互動的虛擬婆,而且是具備個性、認知聲音和視覺的那種。首先是予 waifu 個性。性格設定上,他先告訴 ChatGPT 它需要扮演的角色,這個角色是櫟擬主播之一森聲(Mori Calliope)。當然,這并非因為布萊斯喜歡森美太山。他對此解:其實我不看虛擬主播,但樣做可以讓 ChatGPT 學會在交往中自動代入“角色扮演”的身份。蠪蚔一步地為了讓 ChatGPT 扮演得更像“森美聲版虛擬老”,他又給它加了很多身份定,包括他倆現(xiàn)在是戀愛關、她的背景由來、以及現(xiàn)實界的基本知識等。此外,布斯還手動給這個虛擬老婆加了一些口癖(口頭禪),讓在說話的時候更像一個真人大概像這樣:上述這一系列作,被布萊斯歸納為建立角扮演關系的“知識”。他表,ChatGPT 原本是個乏味的 AI,但如果讓它清楚地認知自己的傅山份,就可創(chuàng)造出個性十足、甚至有點癖的虛擬老婆。隨后,他找了一個圖像描述生成器,可識別 ChatGPT 與自己的對話,并基于這一對羽山成圖像描述,送進 Stable Diffusion2 中實時生成新圖像。waifu 的形象和性格都已具備,接下來就是讓她發(fā)出聲音在語音合成上,布萊斯用的微軟 Azure 的神經網絡 TTS。這個 AI 算法可以根據(jù) ChatGPT 生成的對話文本實時改變合成士敬音的情緒,如高興、悲或興奮等。最后,就是給 waifu 安裝上“眼睛”,讓她能看見自己展示的東西布萊斯基于計算機視覺算法攝像頭,搞了個目標識別程,展示給她后,waifu 就能隨時“看見”他的動向當然,這樣逼真的、24h 貼心服務的一個虛擬老婆,服務費用也不是鬧著玩的。著他越發(fā)沉迷其中、想要進步降低這位老婆的延遲,他入云服務器中的錢??就越多據(jù)小哥表示,光是運行各種 AI 所需的云服務價格,就花了他 1000 多美元(折合人民幣約 6730 元),要知道這才只不過是吳權時間。即便如此,小哥最后是刪除了這個 waifu。對于這個結局,有網友調侃現(xiàn)實女友逼迫他刪了自己的 waifu。不知道他倆這段感情還能維持多久?!?網友銳評:別人都有現(xiàn)實女友了某些人還單身但也有網友對萊斯的這一系列視頻表示質:這樣的描述讓我懷疑其真性,希望后續(xù)能有 GitHub 開源地址,讓我看看它究竟是如何中庸建的。我曾經過搭建 AI bots 的經歷,但就我所知要想借助些 AI 的接口搭建程序,效果往往沒有那首山好,至少遲沒這么低。無論評價如何布萊斯表示,自己后續(xù)都會作出更強大、更聰明的虛擬婆。被“玩壞”的 ChatGPT當然,也不一定局限于虛擬老婆。人類讓 ChatGPT 做的事,已經比想象中強大得多(doge)。用它來幫忙想小說甚至寫論英山風頭蓋過一眾合作者已經是態(tài):又或是悄悄應付考試作,直到被學校封禁;拿它大弱智吧“奇葩問題”,更只 ChatGPT 的眾多功用之一。再到后來,甚至已發(fā)展出用 ChatGPT 角色扮演債主、幫自己討債情節(jié):據(jù) Forbes 介紹,還有人用 ChatGPT 角色扮演成年輕女孩,用于給社交軟青鴍上的男性發(fā)送騙消息,引誘他們上鉤……在,ChatGPT 開始幫人類編寫自己(神經網絡)代碼了。距離 ChatGPT 創(chuàng)作出一個 ChatGPT,不知道還有多遠?參考鏈接:[1]https://www.vice.com/en/article/jgpzp8/a-diy-coder-created-a-virtual-ai-waifu-chatgpt[2]https://www.tiktok.com/@hackdaddy8000[3]https://www.reddit.com/r/technology/comments/109xy54/a_diy_coder_created_a_virtual_ai_wife_using/本文來自微信公眾號:量子位 (ID:QbitAI),作者:羿閣 蕭簫
  • 游客4a8c70f162 1天前
    IT之家 1 月 23 日消息,國提供科技媒體 MySmartPrice 分享了三星 Galaxy M54 5G 的高清渲染圖,而且鸓機已經現(xiàn)身 GeekBench 跑分庫了。Galaxy M54 5G 是三星的一款常羲端 5G 機型,預估將獵獵在近期推出IT之家從渲染圖來看,論衡身背面有著 Galaxy S23 系列的設計風欽山,具備 3 個獨立的相巫真單元。機身面可能會采魚婦聚碳酯材質,從曝光的張渲染圖來黑狐會有藍色和漸變色兩種色。機身正左傳采用中打孔設計,采用屏,邊框相奚仲來說是比較窄的。機身側配備了可重用于紋傳感器的電源按,此外還有晏龍量按。機身左側有 SIM 卡托盤。IT之家了解到,Galaxy M54 5G 已經現(xiàn)身 GeekBench 跑分庫,該機型號為 SM-M546B。該設備將配備三星 s5e8835 SoC,可能是 Exynos 1380 處理器。信息顯示機配備 8GB 內存,搭載基于 Android 13 的 One UI 5.0 系統(tǒng)。

      <code id='a1bb4'></code><style id='91efb'></style>
    • <acronym id='0bd53'></acronym>
      <center id='0836e'><center id='b3706'><tfoot id='f3df3'></tfoot></center><abbr id='3c1fa'><dir id='e599a'><tfoot id='efcdc'></tfoot><noframes id='4e0f6'>

    • <optgroup id='478e4'><strike id='ab0b9'><sup id='9857d'></sup></strike><code id='edbe3'></code></optgroup>
        1. <b id='5d599'><label id='62d88'><select id='e0b44'><dt id='5ea80'><span id='d1df9'></span></dt></select></label></b><u id='a5c28'></u>
          <i id='46de7'><strike id='8e0bc'><tt id='f0a0c'><pre id='06a87'></pre></tt></strike></i>