小编use*_*275的帖子

避免使用react-redux重新渲染大量项目

我正在为我的应用程序使用redux with react和typescript.我正在使用我的应用程序的不同位置使用的许多项目.我的州看起来像这样:

{
    items: {42: {}, 53: {}, ... }, //A large dictionary of items
    itemPage1: {
        itemsId: [ 42, 34, 4 ],
        ...
    },
    itemPage2: { ... 
    },
    ...
}
Run Code Online (Sandbox Code Playgroud)

用户可以修改items调度某些操作的某些属性.当发生这种情况时,我需要重绘每个页面中已修改的组件.问题是我的物品很大,我不能在每次小修改时重新绘制所有物品.我想知道这种方法是否有效:

  • 我有一个<ItemPage1>连接到商店的拳头组件,以获取存储在树中的所有状态,itemPage1例如项目列表id : itemsId.
  • 在里面<ItemPage1>,我遍历itemsId属性以生成多个FilterItem组件:itemsId.map( itemId => return <FilterItem id=itemId>);
  • 最后,每个Item都使用连接ownProps来获取状态的正确部分:

    const mapStateToItemProps = (state, ownProps) => {
        return {
            item: state.items[ownProps.id],
        }
    }
    const mapDispatchToItemProps = (dispatch, ownProps) => …
    Run Code Online (Sandbox Code Playgroud)

reactjs redux react-redux

12
推荐指数
1
解决办法
8389
查看次数

如何调整material-ui的标签大小

我试图得到一个看起来像这样的结果(图片来自https://material.google.com/components/tabs.html#tabs-usage):

我想要的是

我不希望选项卡占用页面宽度的100%,因为它默认使用material-ui.是否可以通过材料-ui的实现来实现这一点?我已经使用styletab属性播放了每个选项卡的宽度,但是inkbare似乎硬编码为根据所选选项卡的id使用百分比,因此没有正确地为调整大小的选项卡加下划线.有解决方法吗?

reactjs material-ui

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

Jupyter 无法加载笔记本“不匹配的匿名定义()模块”

我试图在 jupyter 中使用 D3.js,但我无法让它工作,其中cannot find name d3可能是因为我未能D3正确链接而导致的错误。最后,在尝试了我可以在网上找到的所有内容后,例如:

HTML('<script src="./d3.min.js"></script>')
Run Code Online (Sandbox Code Playgroud)

%%javascript
require.config({
    paths: {
        d3: './d3.min.js'
    }
});
Run Code Online (Sandbox Code Playgroud)

%%HTML
<script src="./d3.min.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)

...

我设法让它工作!但是我无法重现漏洞利用!更糟糕的是,在我试图让它再次工作时,我设法打破了我的笔记本,现在每次我重新加载页面时,我都会收到以下消息:

Notebook failed to load
The error was:
Error: Mismatched anonymous define() module: function (t){"use strict";function n(t){return function(n,e){return ms(t(n),e)}}function e(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Rs?i*=10:o>=Us?i*=5:o>=Ds&&(i*=2),n<t?-i:i}function r(t){return t.length}function i(){}function o(t,n){var e=new i;if(t instanceof i)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,o=-1,u=t ...
Run Code Online (Sandbox Code Playgroud)

怎么了 ?它甚至不等我运行任何单元格崩溃?是否有可能当我D3使用 HTML导入库时,我已经注入了一些导入并破坏了一些依赖项?我怎样才能解决这个问题 ?

html javascript d3.js jupyter jupyter-notebook

5
推荐指数
0
解决办法
222
查看次数

如何使用烧瓶发送和接收大型 numpy 数组(几个 GB)

我正在创建一个在本地使用的微服务。从一些输入我每次生成一个大矩阵。现在我正在使用 json 来传输数据,但它真的很慢并且成为我的应用程序的瓶颈。

这是我的客户端:

headers={'Content-Type': 'application/json'}

data = {'model': 'model_4', \
        'input': "this is my input."}

r = requests.post("http://10.0.1.6:3000/api/getFeatureMatrix", headers=headers, data=json.dumps(data))

answer = json.loads(r.text)
Run Code Online (Sandbox Code Playgroud)

我的服务器是这样的:

app = Flask(__name__, static_url_path='', static_folder='public')

@app.route('/api/getFeatureMatrix', methods = ['POST'])
def get_feature_matrix():
    arguments = request.get_json()
    #processing ... generating matrix
    return jsonify(matrix=matrix.tolist())
Run Code Online (Sandbox Code Playgroud)

如何发送大型矩阵?

json protocol-buffers flask python-3.x python-requests

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

如何在K组之间获得最佳匹配?

我有K组数据点,我想制作大小为K的组,以最小化组内距离的总和.我熟悉匹配算法与二分图,但我想这两个以上.

有任何想法吗?

编辑:

每组将由每组中的一个元素组成,不允许重复.

例如:你有{a1,a2,a3},{b1,b2,b3},{c1,c2,c3}你想创建组,例如{a1,b3,c3},{a2,b1,c2}, {a3,b2,c1}最小化组内距离的总和.

algorithm matching bipartite

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

打字稿错误TS1005:“:”。与Object.assign()

我嵌套Object.assign()在打字稿中:

(<any>Object).assign({}, state, {
    action.item_id: (<any>Object).assign({}, state[action.item_id], {
        label_value: action.value
    })
})
Run Code Online (Sandbox Code Playgroud)

这将产生这些错误:

ERROR in ./src/reducers/ItemsReducer.ts
(2,19): error TS1005: ':' expected.

ERROR in ./src/reducers/ItemsReducer.ts
(2,26): error TS1005: ',' expected.

ERROR in ./src/reducers/ItemsReducer.ts
(2,28): error TS1136: Property assignment expected.
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我修复密钥,错误将消失,例如:

(<any>Object).assign({}, state, {
    "fixed_key": (<any>Object).assign({}, state[action.item_id], {
        label_value: action.value
    })
})
Run Code Online (Sandbox Code Playgroud)

这让我一无所知,action.item_id当他之后不抱怨几个字符时,为什么不能在那个地方打电话呢?

javascript typescript

4
推荐指数
1
解决办法
1714
查看次数

c ++:在if中分配变量

我正在研究一些函数,这个函数,根据一些参数,可能需要一个Model对象.Model对象非常大,我不想在不需要时分配一个.从本质上讲,这就是我想要做的事情:

Model *myModel;
if (modelIsNeeded(arguments)) {
    myModel = &Model(arguments);
}

//processing ...
Run Code Online (Sandbox Code Playgroud)

我有错误 error: taking address of temporary [-fpermissive]

你看到任何解决方法吗?做我想做的事的C++方式是什么?

c++ pointers if-statement allocation

3
推荐指数
1
解决办法
51
查看次数

找到最大的回文子串,算法复杂度

您将获得一个字符串,例如"acdfdcqqc",我们需要创建一个算法来查找最大的回文子字符串"cdfdc".通过创建一个大小为2n的数组来设计O(n ^ 2)算法很容易,并且每次计算最大回文的长度,其中心点为:

a  -  c  -  d  -  f  -  d  -  c  -  q  -  q  -  c
1  0  1  0  1  0  5  0  1  0  1  0  1  4  1  0  1
Run Code Online (Sandbox Code Playgroud)

对于2n个可能的起点中的每一个,我在两个方向上移动,找到从该位置开始的最大回文的长度.因此,对于我在大多数O(n)操作中执行的2n个操作中的每一个,因此O(n ^ 2)时间复杂度.

我知道它可以使用发烧友算法在线性时间内完成:https://en.wikipedia.org/wiki/Longest_palindromic_substring.

但假设我们处理的字符串是从自然英文文本中提取的.如果我们在英文文本中随机选择一个位置,那么我们可能期望找到的预期对称性非常低.我甚至会说,预期的对称性在每一方都不到一个字符.因此,我可以说我的算法正在进行2n次预期的恒定时间操作,使得算法平均值为O(n)吗?

algorithm dynamic-programming palindrome

2
推荐指数
1
解决办法
280
查看次数

当我增加将数据推送到它的线程数时,我的tensorflow队列的填充速度变慢

我已经写了一些代码将数据推送到tensorflow中的队列中,我的队列处理程序的初始化以及所有线程运行的主要功能如下:

def __init__(self):
    self.X = tf.placeholder(tf.int64)
    self.Y = tf.placeholder(tf.int64)
    self.queue = tf.RandomShuffleQueue(dtypes=[tf.int64, tf.int64],
                                       capacity=100,
                                       min_after_dequeue=20)

    self.enqueue_op = self.queue.enqueue([self.X, self.Y])


def thread_main(self, sess, coord):
    """Cycle through the dataset until the main process says stop."""
    train_fs = open(data_train, 'r')
    while not coord.should_stop():
        X_, Y_ = get_batch(train_fs)
        if not Y: #We're at the end of the file
            train_fs = open(data_train, 'r')
            X, Y = get_batch(train_fs)
        sess.run(self.enqueue_op, feed_dict={self.X:X_, self.Y:Y_}) 
Run Code Online (Sandbox Code Playgroud)

在培训期间,我正在监视队列的大小。由于某些原因,当我增加向其中推送数据的线程数量时,队列的填充速度会变慢。知道为什么吗?是因为我正在同时读取python文件吗?

编辑:

这是我正在使用的代码,在数据和图形旁边它是完全相同的。该代码在此虚拟数据上的行为符合预期。我有两个观察结果:

  • 我认为我没有适当地关闭线程,似乎它们在执行后会卡在队列中,而我运行的代码越多,它就会变得越慢。
  • 由于多线程在这里发挥作用,我猜失败的仅有两点是图形和读取数据的方式。

首先,生成一个虚拟数据集:

data_train = "./test.txt"

with open(data_train, 'w') as out_stream:
    out_stream.write("""[1,2,3,4,5,6]|1\n[1,2,3,4]|2\n[1,2,3,4,5,6]|0\n[1,2,3,4,5,6]|1\n[1,2,5,6]|1\n[1,2,5,6]|0""") …
Run Code Online (Sandbox Code Playgroud)

python-multiprocessing tensorflow

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