小编mja*_*sie的帖子

React Context 和 Storybook:更改组件故事中 React Context 的值

我想知道如何更改Storybook 中组件故事内的React Context的值。我想有一种方法可以通过故事控制来控制它,但没有任何文档。

我使用Storybook 文档的这一部分为我的故事提供两个单独的上下文。

我的代码.storybook/preview.js如下所示:

export const decorators = [
  (Story) => (
    <FilterProvider>
      <SearchQueryProvider>
        <Story />
      </SearchQueryProvider>
    </FilterProvider>
  ),
];
Run Code Online (Sandbox Code Playgroud)

FilterProvider代码SearchQueryProvider如下所示:

const SearchQueryProvider = ({ children }: SearchQueryProviderProps) => {
  const [searchQuery, setSearchQuery] = useState<string>("");

  return (
    <SearchQueryContext.Provider value={[searchQuery, setSearchQuery]}>
      {children}
    </SearchQueryContext.Provider>
  );
};

export { SearchQueryProvider, useSearchQuery };
Run Code Online (Sandbox Code Playgroud)

这些状态的初始值基本上都是空的。为了测试和预览使用这些上下文的组件,我现在想更改 Storybook 中的值。

如果有人知道我如何实现这一目标:我很高兴知道并感谢您分享您的知识:)

reactjs storybook react-context

6
推荐指数
1
解决办法
8711
查看次数

如何在课程中使用pyglet

在我见过的有关Pyglet的所有Web教程中,似乎没有一个教程使用类来包含pyglet.window.Window实例。例如,大多数教程看起来像

import pyglet

game_window = pyglet.window.Window()

@game_window.event
def on_draw():
    #dostuff

while __name__ == "__main__":
    pyglet.app.run()
Run Code Online (Sandbox Code Playgroud)

我在将这段代码重组为一个类时遇到麻烦。我打算这样做的代码在这里:

import pyglet
from pyglet.gl import *
from Board import Board

class Frontend:
    def __init__(self,xs, ys):
        self.GameInstance = Board(xs,ys)
        self.GameWindow = pyglet.window.Window(width=512, height=512,visible=False)

    @GameWindow.event
    def on_draw(self):
        self.GameWindow.clear()

f = Frontend()
Run Code Online (Sandbox Code Playgroud)

运行此代码时,出现以下错误:

Traceback (most recent call last):
  File "C:/Users/PycharmProjects/Nothing/2048/Frontend.py", line 7, in <module>
    class Frontend:
  File "C:/Users/PycharmProjects/Nothing/2048/Frontend.py", line 13, in Frontend
    @GameWindow.event
NameError: name 'GameWindow' is not defined
Run Code Online (Sandbox Code Playgroud)

当我更换@GameWindow.event@self.GameWindow.event在试图解决NameError我得到:

Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python overriding class pyglet

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

多类分类中缺失值的 Keras 自定义损失

您好,我的训练数据中标签中有很多缺失值,例如单个标签可以具有以下值:

[nan, 0, 0, nan, 1, 0]
Run Code Online (Sandbox Code Playgroud)

我想训练一个忽略 nan 值的分类模型。目前我已将 nan 值填充为 -1,并尝试对其进行切片。掩码不起作用,因为分类交叉熵仍然考虑到它

ix = tf.where(tf.not_equal(y_true, -1))
true = tf.gather(y_true, ix)
pred = tf.gather(y_pred, ix)
return keras.objectives.categorical_crossentropy(true, pred)
Run Code Online (Sandbox Code Playgroud)

是我到目前为止所能想到的,但它有错误

InvalidArgumentError (see above for traceback): Incompatible shapes: [131] vs. [128]
         [[Node: mul_1 = Mul[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/gpu:0"](Mean, _recv_dense_3_sample_weights_0/_13)]]
Run Code Online (Sandbox Code Playgroud)

有谁知道如何处理这个问题?

python missing-data keras tensorflow multiclass-classification

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

model.predict() 以多个数据集作为输入

我正在尝试将 TensorFlow 数据集(从 .csv 文件读取)输入到使用功能 API 定义的多输入 tf.keras 模型中。当我传递这些与标签压缩在一起的数据集时,训练效果很好。当我想调用predict()(大概是在一些未标记的不同数据集上)时,它会抛出一个错误(无论是在急切执行还是非急切执行中)

这是我当前的代码:

import tensorflow as tf
import numpy as np

tf.enable_eager_execution()

# Define model.
input_A = tf.keras.layers.Input(shape=(None, 5), name='sensor_A_input')
x_1 = tf.keras.layers.LSTM(5, return_sequences=False, recurrent_initializer='glorot_uniform')(input_A)

input_B = tf.keras.layers.Input(shape=(None, 4), name='sensor_B_input')
x_2 = tf.keras.layers.LSTM(5, return_sequences=False, recurrent_initializer='glorot_uniform')(input_B)

x = tf.keras.layers.concatenate([x_1, x_2], name='concat_test')
output = tf.keras.layers.Dense(1, activation='sigmoid', name='output')(x)

model = tf.keras.Model(inputs=[input_A, input_B], outputs=output)

model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])
model.run_eagerly = tf.executing_eagerly()

# Define input data.
# Dataset 1 is read from 10 .csv files where one …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow tensorflow-datasets multiple-input

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

如何创建一个空的python虚拟环境

使用 conda 创建新环境时,我们会得到一个完全空的虚拟环境:

conda create --name=test
conda activate test
conda list
Run Code Online (Sandbox Code Playgroud)

最后一个命令的输出是一个空列表,甚至没有pip安装。我想用 pythonvenv命令实现相同的结果(或者至少只pip安装了“最小”虚拟环境)。当我运行时python -m venv test,新环境包含所有“系统范围”可用的包:

python -m venv test
source test/bin/activate
pip freeze
Run Code Online (Sandbox Code Playgroud)

输出一长串包。

根据文档,该命令具有--system-site-packages参数,但看起来默认情况下已启用,我找不到禁用它的方法。我也试过使用旧的 virtualenv--clear参数,但显然它没有被考虑在内。

编辑:

原来是环境模块module命令干扰了 python 模块(https://modules.readthedocs.io/en/latest/)。运行后module purge pip freeze返回空列表。

python python-3.x python-venv

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

组合两个函数以将它们应用于相同的输入

我是Haskell的新手,但我仍然想尽办法。我正在尝试将两个函数(isMark以及isAlpha来自包中的Data.Char模块base合并Data.Text.filter函数的第一个参数。到目前为止,我尝试过的是:

import qualified Data.Char as C
import qualified Data.Text as T
import           Data.Text (Text)

strippedInput :: Text -> Text
strippedInput input = T.filter (C.isMark || C.isAlpha) input
Run Code Online (Sandbox Code Playgroud)

这不起作用,或者

strippedInput input = T.filter (C.isMark . C.isAlpha) input
Run Code Online (Sandbox Code Playgroud)

但显然它也不管用,因为类型C.isAlphaIS Char -> Bool然后成为一个输入C.isMark,这也是类型Char -> Bool等等类型不匹配。

我想在谓词中实现“ C.isMarkC.isAlpha”逻辑,但是由于我的知识非常有限,我对如何搜索解决方案的想法已经用尽。

text haskell predicate

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