当前位置: 首页 > 面试题库 >

如何在kerras中使用numpy数组设置权重?

严狐若
2023-03-14
问题内容

我在设置值的Keras后端功能上遇到麻烦。我正在尝试将模型从PyTorch转换为Keras,并尝试设置Keras模型的权重,但是权重似乎没有被设置。注意:我实际上并没有使用np.ones进行设置,仅以示例为例。

我试过了…

加载现有模型

import keras
from keras.models import load_model, Model
model = load_model(model_dir+file_name)
keras_layer = [layer for layer in model.layers if layer.name=='conv2d_1'][0]

创建一个简单的模型

img_input = keras.layers.Input(shape=(3,3,3))
x = keras.layers.Conv2D(1, kernel_size=1, strides=1, padding="valid", 
use_bias=False, name='conv1')(img_input)
model = Model(img_input, x)
keras_layer = [layer for layer in model.layers if layer.name=='conv1'][0]

然后使用set_weights或set_value

keras_layer.set_weights([np.ones((1, 1, 3, 1))])

要么…

K.batch_set_value([(weight,np.ones((1, 1, 3, 1))) for weight in keras_layer.weights])

之后,我将调用以下任一方法:

K.batch_get_value([weight for weight in keras_layer.weights])
keras_layer.get_weights()

而且似乎没有设置任何权重。返回与以前相同的值。

[array([[[[  1.61547325e-06],
      [  2.97779252e-06],
      [  1.50160542e-06]]]], dtype=float32)]

如何设置numpy值数组在Keras中的图层权重?


问题答案:

什么是keras_layer你的代码?

您可以通过以下方式设置权重:

model.layers[i].set_weights(listOfNumpyArrays)    
model.get_layer(layerName).set_weights(...)
model.set_weights(listOfNumpyArrays)

model现有模型的实例在哪里。您可以使用get_weights()上述相同实例中的方法查看列表的预期长度及其数组形状。



 类似资料:
  • 问题内容: 如果我们有一个numpy数组,例如: 我们想要设置一个元素,另一个元素 我们该怎么做? 将数组的第一个维度的每个元素设置为5 问题答案: 使用as作为数据数组和索引数组,以便每一行对应于要在数据数组中设置的一个元素,您可以执行以下操作- 样品运行- 或者,我们可以使用计算线性索引,然后使用进行赋值,就像这样- 如果您要处理三维数组,我们可以对三维索引进行切片,然后分配具有另一种方法,如

  • 问题内容: 我正准备编写一个基于MPI的代码,以便使用python和MPI4py进行一些计算。但是,按照该示例,我无法将一个numpy向量散布到核心中。这是代码和错误,有人可以帮助我吗?谢谢。 错误结果是: 谢谢。 问题答案: 数据类型不正确。我应该指定数组的类型:

  • 我必须用Python写一个基于代理的模型项目,我需要初始化50个代理,每个代理都包含一组不同的数字。我不能使用50行的矩阵,因为每个代理(每行)可以有不同数量的元素,所以每个代理的向量长度不一样:当算法中出现agent_i的某些条件时,然后将算法计算的一个数字添加到它的向量中。最简单的方法是手动编写每一个这样的 但我当然不能。我不知道是否存在一种通过循环自动初始化的方法,比如 如果它存在,它将是有

  • 我正在用Expo CLI构建一个React原生应用程序,我正在尝试用Axios和redux Thunk获取一些用户数据到我的redux商店。

  • 问题内容: 我有一个形状为(x,y)的2d数组,我想将其转换为形状为(x,y,1)的3d数组。有没有很好的Pythonic方式可以做到这一点? 问题答案: 除了其他答案,您还可以将切片与结合使用: 甚至这个(可以在任意数量的尺寸下使用):