1. 程式人生 > 實用技巧 >c++序列化

c++序列化

一、釘釘檔案小助手,2020 年 6 月 3 日 16:23

build_main_part() 用於構建出靜態圖 (Variable及Operation), 並在訓練過程中不變;
session.run() 一次每個batch跑一個step,run 裡面的引數才會參與計算與更新,一般只需要填 train_op 與 loss;
需要在 tf.summary.scalar 中畫圖的一定要作為 run 的引數;
optimizer.apply_gradients() 與 minimize() 內部 global step都會自增1;

二、釘釘檔案小助手,2020 年5 月 19 日 10:50

定積分 → 黎曼可積 → 任意分割區間任意取值 → 上下限互換 →(or Newton-Leibniz formula)→ 定積分值相反。

三、釘釘檔案小助手,2020 年3 月 5 日 16:47

foobar2k for mac:無暗黑模式,功能過於單一甚至殘廢,竟然將我辛苦下的Jay的歌識別成日文版的,且無歌詞。棄。

網易雲音樂 for mac:出乎意料的精煉小巧,面板倒是很容易換,但竟然“高尚”地無法匯入本地音樂資料夾,單獨開啟一首歌可愛女人也識別成了日文版。雖有歌詞,且能匹配iTunes。棄。留著聽許嵩吧。

iTunes:匯入整張專輯挺方便,但不喜歡官方,不能播放flac檔案。棄。

幾乎折騰了一天從百度雲下載的Jay的歌利用U盤轉運至MBA,最後還是刪了。用另聽吧。
另:bilibili或者YouTube上Jay的專輯MV或歌曲合集。

四、釘釘檔案小助手,2019年12月20日 11:23

sublime text → pycharm → vscode
sublime text 3棄坑原因:Jedi外掛跳轉定義失效(同時代碼提示太卡),全域性搜尋雞肋,git push需要命令列
pycharm棄坑原因:太重
vscode 優點:能同時寫LaTeX,裝了Mariana Pro主題,file specific 2/4 spaces,obvious code changes,but no multi-row tabs,全域性搜尋稍微不太習慣

後續2019年12月23日 14:24 補充:

sublime text3:安裝外掛需要翻牆;vscode:補全和跳轉竟然也是依賴Jedi。

五、KDD paper auxiliary loss:

 1 def loss_op(self):
 2         super(Base_Two_Tower_Hete_Graph_Text, self).loss_op()
 3         with tf.name_scope("{}_Loss_Op".format(self.name)):
 4             if self.training_config.use_neigh_hinge_loss:
 5                 margin = 0.2
 6                 alpha = 0.1
 7                 logging.info('calculate neighbor proximity hinge loss, margin = {}, alpha = {}'.format(margin, alpha))
 8 
 9                 for i in [self.query_self_and_neigh_emb, self.shop_self_and_neigh_emb]:
10                     self.dis = tf.matmul(i[0], tf.transpose(i[1]))
11                     self.positive_distance = tf.reshape(tf.diag_part(self.dis), [self.config.batch_size, 1])
12                     self.term1 = term1 = tf.reduce_mean(
13                         tf.maximum(0., - self.positive_distance + (self.dis + margin * tf.eye(self.config.batch_size)) + margin))
14                     self.loss = self.loss + alpha * term1
15 
16             elif self.training_config.use_neigh_nce_loss:
17                 alpha = 1
18                 neighbor_cnt = self.training_config.igraph_neighbor_cnt
19                 logging.info('calculate neighbor proximity NCE loss, alpha = {}'.format(alpha))
20 
21                 for self_and_neigh_emb in [self.query_self_and_neigh_emb, self.shop_self_and_neigh_emb]:
22                     temp0 = tf.split(self_and_neigh_emb, neighbor_cnt * 2 + 1, axis=1)
23                     self.term = 0.0
24                     for i in range(neighbor_cnt):
25                         self.dis = tf.matmul(temp0[0], tf.transpose(temp0[i+1]))
26                         self.positive_distance = tf.reshape(tf.diag_part(self.dis), [self.config.batch_size, 1])
27                         self.negtive_distance = self.dis - (self.positive_distance * tf.eye(self.config.batch_size))
28                         term = tf.reduce_mean(-tf.log(tf.sigmoid(self.positive_distance)+1e-24) -
29                                                     tf.reduce_mean(tf.log(1 - tf.sigmoid(self.negtive_distance)+1e-24), axis=1, keep_dims=True))
30                         self.term += term
31                     self.loss = self.loss + alpha * self.term / neighbor_cnt
32             else:
33                 self.loss = self.loss + 0.0
View Code