小编Rav*_*Jha的帖子

如何在此 Tensorflow 模型中保存和加载 BatchNormalization Layer?

我正在尝试保存模型,然后加载它以做出一些预测;发生的情况是,训练后模型的准确度为95%+,但是当我保存它然后加载它时,准确度下降到几乎10%相同数据集。

要重现此错误结果,您可以运行以下命令非常小的笔记本。

该模型定义如下:

model_scratch_auto = models.Sequential()
model_scratch_auto.add(Flatten(input_shape=(28,28)))
model_scratch_auto.add(Dense(80, activation='relu'))
model_scratch_auto.add(Dense(100, activation='relu'))
model_scratch_auto.add(Dense(120, activation='relu'))
model_scratch_auto.add(Dense(100, activation='relu'))
auto_srelu=AutoSRELU()
model_scratch_auto.add(auto_srelu)
model_scratch_auto.add(Dense(120, activation='relu'))
model_scratch_auto.add(auto_srelu)
model_scratch_auto.add(BatchNormalization())
model_scratch_auto.add(Dense(10, activation='softmax'))
model_scratch_auto.compile(optimizer = tf.optimizers.Adam(),loss='categorical_crossentropy', metrics=['acc',f1_m,precision_m, recall_m])

model_scratch_auto.fit(X_train, y_train , batch_size=64, epochs=5, validation_data=(X_test, y_test),verbose=1)
Run Code Online (Sandbox Code Playgroud)

其中自定义层,AutoSRELU定义如下:

initializer0 = keras.initializers.RandomUniform(minval = -1, maxval =1)
initializer1 = keras.initializers.RandomUniform(minval = 0.5, maxval =3)

 
class MinMaxConstraint(keras.constraints.Constraint):
    def __init__(self, minval, maxval):
        self.minval = tf.constant(minval ,dtype='float32')
        self.maxval = tf.constant(maxval ,dtype='float32')
    def __call__(self, w):
        tf.cond(tf.greater(self.minval,w)
                , lambda: …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow keras-layer tf.keras

11
推荐指数
1
解决办法
1004
查看次数

如何将行标题添加到以下 matplotlib 代码中?

我正在尝试创建一个包含 8 个子图(4 行和 2 列)的图。为此,我编写了这段代码来读取 x 和 y 数据并按以下方式绘制它:

fig, axs = plt.subplots(4, 2, figsize=(15,25))
y_labels = ['k0', 'k1']

for x in range(4):
    for y in range(2):
        axs[x, y].scatter([i[x] for i in X_vals], [i[y] for i in y_vals])
        axs[x, y].set_xlabel('Loss')
        axs[x, y].set_ylabel(y_labels[y])
Run Code Online (Sandbox Code Playgroud)

这给了我以下结果: 在此输入图像描述

但是,我想通过以下方式向所有行(而不是绘图)添加标题(标题为黄色文本):

在此输入图像描述

我在这里找到了这张图片和一些执行此操作的方法,但我无法为我的用例实现此操作并收到错误。这是我尝试过的:

gridspec = axs[0].get_subplotspec().get_gridspec()
subfigs = [fig.add_subfigure(gs) for gs in gridspec]

for row, subfig in enumerate(subfigs):
    subfig.suptitle(f'Subplot row title {row}')
Run Code Online (Sandbox Code Playgroud)

这给了我错误:'numpy.ndarray' object has no attribute 'get_subplotspec'

所以我将代码更改为:

gridspec = axs[0, 0].get_subplotspec().get_gridspec()
    subfigs = …
Run Code Online (Sandbox Code Playgroud)

python matplotlib subplot

5
推荐指数
1
解决办法
1688
查看次数

为什么这个简单的 C 程序没有显示任何输出?

我必须计算循环针对给定输入运行的次数,我正在尝试使用自定义值n来提出公式,但以下虚拟程序不显示任何输出,也不显示任何错误。还有的自定义值n而变化的4^k,我已经使用了一个随机值64,看看有多少次的循环运行。

我试图printf()在 while 循环本身中包含该语句,以查看编译器是否甚至进入该循环,但我仍然没有得到任何结果。我没有用 C 做过很多编程,我在一个在线编译器中运行程序。

int main()
{
    int i;
    int j;

    int n=64;
    int count=0;
    
    for(i=1;i<=n;i++){
        j = 2;
        while(j<=n){
            j = i*i;
            count +=1 ;
            
        }
    }
    
    printf("%d",count);
    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c printf for-loop while-loop

0
推荐指数
1
解决办法
76
查看次数