1. 程式人生 > >Deep Learning 31: 不同版本的keras,對同樣的程式碼,得到不同結果的原因總結

Deep Learning 31: 不同版本的keras,對同樣的程式碼,得到不同結果的原因總結

 1 class Adam(Optimizer):
 2     '''Adam optimizer.
 3 
 4     Default parameters follow those provided in the original paper.
 5 
 6     # Arguments
 7         lr: float >= 0. Learning rate.
 8         beta_1/beta_2: floats, 0 < beta < 1. Generally close to 1.
 9         epsilon: float >= 0
. Fuzz factor. 10 11 # References 12 - [Adam - A Method for Stochastic Optimization](http://arxiv.org/abs/1412.6980v8) 13 ''' 14 def __init__(self, lr=0.001, beta_1=0.9, beta_2=0.999, 15 epsilon=1e-8, decay=0., **kwargs): 16 super(Adam, self).__init__(**kwargs) 17 self.__dict__.update(locals())
18 self.iterations = K.variable(0) 19 self.lr = K.variable(lr) 20 self.beta_1 = K.variable(beta_1) 21 self.beta_2 = K.variable(beta_2) 22 self.decay = K.variable(decay) 23 self.inital_decay = decay 24 25 def get_updates(self, params, constraints, loss):
26 grads = self.get_gradients(loss, params) 27 self.updates = [K.update_add(self.iterations, 1)] 28 29 lr = self.lr 30 if self.inital_decay > 0: 31 lr *= (1. / (1. + self.decay * self.iterations)) 32 33 t = self.iterations + 1 34 lr_t = lr * K.sqrt(1. - K.pow(self.beta_2, t)) / (1. - K.pow(self.beta_1, t)) 35 36 shapes = [K.get_variable_shape(p) for p in params] 37 ms = [K.zeros(shape) for shape in shapes] 38 vs = [K.zeros(shape) for shape in shapes] 39 self.weights = [self.iterations] + ms + vs 40 41 for p, g, m, v in zip(params, grads, ms, vs): 42 m_t = (self.beta_1 * m) + (1. - self.beta_1) * g 43 v_t = (self.beta_2 * v) + (1. - self.beta_2) * K.square(g) 44 p_t = p - lr_t * m_t / (K.sqrt(v_t) + self.epsilon) 45 46 self.updates.append(K.update(m, m_t)) 47 self.updates.append(K.update(v, v_t)) 48 49 new_p = p_t 50 # apply constraints 51 if p in constraints: 52 c = constraints[p] 53 new_p = c(new_p) 54 self.updates.append(K.update(p, new_p)) 55 return self.updates 56 57 def get_config(self): 58 config = {'lr': float(K.get_value(self.lr)), 59 'beta_1': float(K.get_value(self.beta_1)), 60 'beta_2': float(K.get_value(self.beta_2)), 61 'decay': float(K.get_value(self.decay)), 62 'epsilon': self.epsilon} 63 base_config = super(Adam, self).get_config() 64 return dict(list(base_config.items()) + list(config.items()))

相關推薦

Deep Learning 31: 不同版本keras,同樣程式碼,得到不同結果原因總結

1 class Adam(Optimizer): 2 '''Adam optimizer. 3 4 Default parameters follow those provided in the original paper. 5 6 # Arguments 7

智邦國際ERP系統31.85版本發布,全面開啟不同企業不同管理

無法 品質 查重 精準 體驗 填充 申請 全面 平板 國慶節剛過,智邦國際又有大動作,31.85版本正式發布!一大波新功能來襲,電腦端新增出庫自定義發貨、工序一鍵式導入、派工無限級審批、快遞公司手動錄入、供應商一鍵呼出、委外價格自動調取、收款產品明細打印、固定資產工作量分批

Deep learning基於theano的keras學習筆記-網路層

Deep learning基於theano的keras學習筆記-網路層 轉自 https://blog.csdn.net/zhili8866/article/details/53262114 1. 常用層 1.1 Dense層 keras.layers.core.Dense(outp

[Deep-Learning-with-Python]基於Keras的房價預測

預測房價:迴歸問題 迴歸問題預測結果為連續值,而不是離散的類別。 波士頓房價資料集 通過20世紀70年代波士頓郊區房價資料集,預測平均房價;資料集的特徵包括犯罪率、稅率等資訊。資料集只有506條記錄,劃分成404的訓練集和102的測試集。每個記錄的特徵

Deep learning基於theano的keras學習筆記(3)-網路層

1. 常用層 1.1 Dense層 keras.layers.core.Dense(output_dim, init='glorot_uniform', activation='linear', w

不同版本EclipseJDK版本要求

1.Eclipse 4.6 (Neon)---需要JDK1.8版本,官網解釋如下 ---------------------------------------------------------------------------------------- Ecli

關於"一個作業系統下如何安裝多個不同版本的JDK?"、並實現不同版本之間的相互切換使用

本文章將教你如何在一個作業系統下安裝多個不同版本的JDK, 並且實現不同版本直接的相互切換使用。 JDK的各個版本如下:  由於以前我們總是習慣直接在Oracle官網上找到所需的版本進行直接下載JDK, 但是筆者我今天也是埋頭直接去了官網, 奈何Oracle官方已經限制了

Deep learning:四十(龍星計劃2013深度學習課程小總結)

頭腦一熱,坐幾十個小時的硬座北上去天津大學去聽了門4天的深度學習課程,課程預先的計劃內容見:http://cs.tju.edu.cn/web/courseIntro.html。上課老師為微軟研究院的大牛——鄧力,群(qq群介紹見:Deep learning高質量交流群)裡

(轉) Learning Deep Learning with Keras

trees create pda sse caffe latex .py encode you Learning Deep Learning with Keras Piotr Migda? - blog Projects Articles Publications Res

探尋不同版本號的SDKiOS程序的影響

view order 3.2 一次 ram 替換 pad out 可能 PDF版本號:http://pan.baidu.com/s/1eQ8DVdo 結論: 同樣的代碼。使用不同版本號的SDK來編譯。會影響MachO頭中的值, 從而使程序

Building a Keras + deep learning REST API(三部曲之一)

and from urn -h png app 比較 get round 一、基本環境$ pip install flask gevent requests pillow其中 flask不需要解釋gevent 是用於自動切換進程的;pillow 是用來進行python下的圖

機器學習與深度學習系列連載: 第二部分 深度學習(九)Keras- “hello world” of deep learning

Keras Kearas 是深度學習小白程式碼入門的最佳工具之一。 如果想提升、練習程式碼能力,還是建議演算法徒手python實現。 複雜的深度神經網路專案還是推薦TensorFlow或者Pytorch Keras是一個高層神經網路API,Keras由純Pyt

Deep Learning Face Representation from Predicting 10,000 Classes論文的理解

接下來從以下四個方面來介紹我對這篇論文的理解: 一.目的 利用深度學習學習人臉的高維特徵來進行人臉驗證 二.Deep convnets(特徵提取模型)                  

安裝weblogic不同版本JDK和Spring的支援度

現在很多人在使用SSH架構(Spring, Struts, Hibernate)開發, Tomcat 上開發完了, 認為往WebLogic上一放, 就可以正常的執行. 然而實際情況並非這麼簡單. 首先是JDK支援問題, Tomcat 5.0 開始都支援 Java 5和 Java EE 5, 但

deep learning 吳恩達 第四課第二週程式設計 Keras - Tutorial - Happy House v2

Keras tutorial - the Happy House Welcome to the first assignment of week 2. In this assignment, you will: Learn to use Keras, a high-level neur

Anaconda中不同版本的開發環境來裝第三方庫

問題的由來:在安裝anaconda3之後,通過Anaconda Navigator建立了不同版本的開發環境,我由於以前用python2.7開發過爬蟲,現在想重新實現一下這個開發環境 開啟cmd命令列,輸入conda activate py27(這個py27是Anaconda Navigator建立

Deep Learning: Keras + MNIST

Data representations for neural networks # -*- coding: utf-8 -*- """ @Date: 2018/9/28 @Author: dre

Deep Learning: Keras + Reuters

Classifying newswires: a multiclass classification example # -*- coding: utf-8 -*- """ @Date: 2018/10/6 @Author: dreamhomes @Sum

智邦國際31.85版本釋出,全面開啟不同企業不同管理

國慶節剛過,智邦國際又有大動作,31.85版本正式釋出!一大波新功能來襲,電腦端新增出庫自定義發貨、工序一鍵式匯入、派工無限級審批、快遞公司手動錄入、供應商一鍵撥出、委外價格自動調取、收款產品明細列印、固定資產工作量分批錄入等一系列全新功能。移動端新增藍芽列印、掃碼入庫、掃碼

Building A Deep Learning Model using Keras

Building A Deep Learning Model using KerasDeep learning is an increasingly popular subset of machine learning. Deep learning models are built using neural