目录

一个简单的例子

另外一个例子:来自KerasLayer trainable=false seems to have no effect

解决的办法


一个简单的例子

import tensorflow.compat.v1 as tf
from tensorflow.keras.layers import Conv2Dinput = tf.ones([5, 5, 5, 5])with tf.variable_scope('z'):z = tf.Variable(tf.zeros(shape=[3,1],dtype=tf.float32),name='z',trainable=False)with tf.variable_scope('conv'):output1 = Conv2D(filters=3,kernel_size=3,trainable=False)(input)# output = tf.keras.layers.BatchNormalization(trainable=False)(input,training=True)print(tf.get_collection(key=tf.GraphKeys.TRAINABLE_VARIABLES))
print(tf.trainable_variables())

打印:

[<tf.Variable 'conv/conv2d/kernel:0' shape=(3, 3, 5, 3) dtype=float32>, <tf.Variable 'conv/conv2d/bias:0' shape=(3,) dtype=float32>]
[<tf.Variable 'conv/conv2d/kernel:0' shape=(3, 3, 5, 3) dtype=float32>, <tf.Variable 'conv/conv2d/bias:0' shape=(3,) dtype=float32>]

另外一个例子:来自KerasLayer trainable=false seems to have no effect

Setting trainable=False seems to have no effect.

Minimal example:

layer = tf.keras.layers.Dense(units=1,kernel_initializer=tf.keras.initializers.Constant([[1.0]]),bias_initializer=tf.keras.initializers.Constant([1.0]),trainable=False)
y = layer(tf.constant([[1.0]]))
with tf.Session() as session:session.run(tf.global_variables_initializer())for var in tf.global_variables():print("var: " + str(var) + " trainable: " + str(var.trainable))

results in:

var: <tf.Variable 'dense/kernel:0' shape=(1, 1) dtype=float32> trainable: True
var: <tf.Variable 'dense/bias:0' shape=(1,) dtype=float32> trainable: True

解决的办法

解决的办法就是在导入模型的时候建立一个variable_scope,将需要训练的变量放在另一个variable_scope,然后通过tf.get_collection获取需要训练的变量,最后通过tf的优化器中var_list指定需要训练的变量。

真的是,还要这么多冗余的操作去规避这个缺点,fuck

tf.keras与 TensorFlow混用,trainable=False设置无效相关推荐

  1. Keras TensorFlow 混编中 trainable=False设置无效

    Keras TensorFlow 混编中 trainable=False设置无效 这是最近碰到一个问题,先描述下问题: 首先我有一个训练好的模型(例如vgg16),我要对这个模型进行一些改变,例如添加 ...

  2. Keras vs tf.keras: 在TensorFlow 2.0中有什么区别?

    导读 在本文中,您将发现Keras和tf.keras之间的区别,包括TensorFlow 2.0中的新增功能. 万众期待的TensorFlow 2.0于9月30日正式发布. 虽然肯定是值得庆祝的时刻, ...

  3. Keras与tf.keras:TensorFlow 2.0有什么区别?

      在本教程的第一部分中,我们将讨论Keras和TensorFlow之间相互交织的历史,包括他们共同的受欢迎程度如何相互滋养,相互促进和滋养,使我们走向今天.   然后,我将讨论为什么您应该在以后的所 ...

  4. Keras vs. tf.keras: 在TensorFlow 2.0中有什么区别?

    在本教程中,您将发现Keras和tf.keras之间的区别,包括TensorFlow 2.0中的新增功能. Keras vs. tf.keras: 在TensorFlow 2.0中有什么区别? htt ...

  5. 【tf.keras】TensorFlow 1.x 到 2.0 的 API 变化

    3. model.compile() 中设置 metrics=['acc'] 或者 ['accuracy'],会影响 model.fit() 生成的 log,callbacks.ModelCheckp ...

  6. 【tf.keras】tf.keras使用tensorflow中定义的optimizer

    我的 tensorflow+keras 版本: print(tf.VERSION) # '1.10.0' print(tf.keras.__version__) # '2.1.6-tf' tf.ker ...

  7. Vue Admin Template关闭eslint校验,lintOnSave:false设置无效解决办法

    目录 第一步:lintOnSave:false 第二步:修改package.json中的配置 最后一步: 使用Vue Admin Template 二次开发是一件非常愉悦的事情,可是它里面的eslin ...

  8. 批标准化 tf.keras.layers.BatchNormalization 中的trainable参数与training参数比较

    巨坑提醒:tf.keras与tensorflow混用,trainable=False根本不起作用.正文不用看了. 摘要: 在tensorflow中,training参数和trainable参数是两个不 ...

  9. TensorFlow高阶 API: keras教程-使用tf.keras搭建mnist手写数字识别网络

    TensorFlow高阶 API:keras教程-使用tf.keras搭建mnist手写数字识别网络 目录 TensorFlow高阶 API:keras教程-使用tf.keras搭建mnist手写数字 ...

最新文章

  1. Ubuntu12.04LTS添加broadcom 802.11g无线网卡驱动
  2. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十二:串口模块① — 发送
  3. python官网32位下载_python32位下载-Python for Windows 32位下载 v3.8.0官方版--pc6下载站...
  4. 华大 MCU 之七 DMA 导致 SPI 异常停止的原因分析、DMA 配置的那些坑
  5. JavaScript实现省市二级联动
  6. React 与 Vue 框架的设计思路大 PK
  7. 泛型型协变逆变_Java泛型类型简介:协变和逆变
  8. 现代软件工程 作业 4 个人作业
  9. 手机连接投影机的步骤_投影机安装过程详解
  10. 99%程序员不知道的编程必备工具,人工智能助你编程更轻松
  11. 疑似小米11 Pro保护壳曝光:横向矩阵相机设计
  12. Mendix App推送服务之实践分享
  13. 升级AndroidX appcompat 1.2+版本导致多语言切换失败解决方案及问题分析
  14. 中医电脑cac处方系统 最好的杀毒软件
  15. PMP工具与技术总结
  16. 代码查重工具SIM,添加图形界面GUI,附下载链接
  17. Codeforce 1296 C. Yet Another Walking Robot
  18. 关于程序员网站,这七家超级实用!(来自36氪推荐)
  19. ems苹果专线投递速度_“高功率脉冲磁控溅射”新工艺:苹果 iPhone 12 Pro 金色版图赏 - 苹果,iPhone...
  20. 奥鹏教育微学吧JAVA答案_西交20秋《Java语言》在线作业【标准答案】

热门文章

  1. 比较好的浏览器_一款安卓黑科技手机浏览器 体积很小,功能很6!
  2. linux的工程管理器是,Linux工程管理器——make
  3. 任天堂 虚拟主机服务器,任天堂 虚拟主机服务器
  4. java构造器 权限_一文搞懂Java的 构造方法 和 访问权限
  5. 红黑树分为红和黑有什么好处_BAT面试程序员必问:什么是红黑树?
  6. appinventor如何做个游戏_单亮:游戏的重要性
  7. 狗熊冬眠_4本最佳的冬眠书–Spring冬眠书
  8. 使用Mongo Shell和Java驱动程序的MongoDB Map Reduce示例
  9. 从事Web前端开发,必须要知道的这些框架
  10. Java新职篇:一维数组