首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >绘制数组中的每个第n个元素

绘制数组中的每个第n个元素
EN

Stack Overflow用户
提问于 2019-04-16 00:59:23
回答 1查看 7.7K关注 0票数 2

我从零开始编写一个简单的神经网络。神经网络采用simple_1_layer_classification_NN方法实现。对于每个Epoch (神经网络的训练运行),正如您从for loop中看到的(在下面的代码中),我将成本(误差裕度)值附加到数组costs中。问题是,当训练可以达到数千甚至数百万的时候。这意味着costs数组可以附加这么多cost元素。

由于我不想在一个图上绘制数千个或数百万个数据点,我想要做的是,无论costs数组中有多少元素,我只想从其中绘制100个数据点,尽可能均匀地展开。如果有10个元素,那就把所有10个元素都画出来。如果有100个元素,则绘制所有100个元素。任何高于100的,只绘制100个等距的数据点。用200个地块绘制每一个其他数据点。用500,每5元素画一幅图。即使是102个元素,也只能绘制100个数据点,尽可能的间隔.我希望这是合理的。这有可能做到吗?注意,我只包含了与问题最相关的部分代码。在有点点# ......注释的地方,我只是表示这里有代码,但我没有包括它,因为它与问题无关。

事先非常感谢您的帮助。

代码语言:javascript
运行
复制
 def simple_1_layer_classification_NN(self, dataset_input_matrix, output_data_labels, input_dimension, epochs, activation_func='sigmoid', learning_rate=0.2, cost_func='squared_error'):
        # ...............
        cost = float()
        costs = []
        # ................

        # We perform the training based on the number of epochs specified
        for i in range(epochs):

                 #....................
                 # Cost: the cost function to calculate the prediction error margin
                 cost = chosen_cost_func(pred, output_data_labels[ri])

                costs.append(cost)
        #.....................

    plt.plot(costs)
    plt.show()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-16 01:01:55

关于

代码语言:javascript
运行
复制
x = xdata[::10]
x = ydata[::10]
plt.plot(x, y)
plt.show()

它将画出xdata,ydata中的每10点。

在你的情况下

代码语言:javascript
运行
复制
x = None
y = None
l = len(xdata) 
if l < 100:
    x = xdata[::]
    y = ydata[::]
elif l < 200:
    x = xdata[::2]
    y = ydata[::2]
elif l < 500:
    x = xdata[::5]
    y = ydata[::5]

更新

不确定它是否相关,但您也可以尝试使用自定义大步。它将指向相同的数据缓冲区,但使用不同的元数据来跨出数据。

函数要查看的是步幅,它在stride_tricks中是有原因的--您将有一些时间来适应它。将可写设置为False,这样就不会破坏原始数据。简单的例子是这里

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55699132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档