在厨师汇聚食谱期间

时间:2019-01-26 16:55:30

标签: chef

我遇到了厨师弃用错误的问题。我有3个食谱,分别是A,B和C。对于食谱A,B是依赖关系,而C是B的依赖关系。在食谱B的食谱之一中,我有以下内容

from keras.engine import Layer, InputSpec
from keras.layers import Flatten
import tensorflow as tf


# https://github.com/keras-team/keras/issues/373
class KMaxPooling(Layer):
    """
    K-max pooling layer that extracts the k-highest activations from a sequence (2nd dimension).
    TensorFlow backend.
    """

    def __init__(self, k=1, **kwargs):
        super().__init__(**kwargs)
        self.input_spec = InputSpec(ndim=3)
        self.k = k

    def compute_output_shape(self, input_shape):
        return input_shape[0], (input_shape[2] * self.k)

    def call(self, inputs):
        # swap last two dimensions since top_k will be applied along the last dimension
        shifted_input = tf.transpose(inputs, [0, 2, 1])

        # extract top_k, returns two tensors [values, indices]
        top_k = tf.nn.top_k(shifted_input, k=self.k, sorted=True, name=None)[0]

        # return flattened output
        return Flatten()(top_k)

    def get_config(self):
        config = {'k': self.k}
        base_config = super().get_config()
        return {**base_config, **config}

在食谱C的食谱之一中,我有以下相同内容。

from_file 'xxxxxx' do 
  source 'yyy' 
  mode 0xxx 
  owner 'abc' 
  group 'abc' 
end

现在,当我收敛菜谱A时,它由于克隆而失败,由于过时而导致资源错误失败。

请提出我应该如何更改以使其在Chef 13中代表。

1 个答案:

答案 0 :(得分:0)

from_file不是厨师资源,而是内部混合资源(也许您指的是file resource

话虽如此,感觉就像您面对resource cloning deprecation message (chef-3694),自厨师10.18.0起已弃用,并已从厨师13中移除。

要解决此问题,请为您的资源指定唯一的名称。例如:如果您有两个名称如下的资源

file 'x' do
  # ...
end

file 'x' do
  # ...
end

然后更改其中之一,这样您将具有唯一的名称:

file 'x' do
  # ...
end

file 'y' do
  # ...
end