小编SiL*_*hon的帖子

Python:如何确保您使用的库不会意外导入您的代码?

几个小时前,我不小心把我的短剧命名为code.py.显然,有这样的包装,例如由ptvsd或使用pdb.这导致我code.py被导入而导致一堆嵌套的未处理异常,在尝试调试我的代码时缺少导入.令人沮丧的是,追溯没有显示导入我的code.py文件的任何迹象,所以我花了很长时间才找到问题的根源.

我想在将来避免这种情况,所以我的问题是:确保您使用的模块由于这样的名称冲突而错误地导入代码的最佳做法是什么?

python debugging naming

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

字符串常量在c ++中存在多长时间?

我一直想知道,C++中的字符串常量有多长.例如,如果我在函数内部创建了一些const char*str ="something",那么返回str的值是否安全?

我写了一个示例程序,看到这样的返回值仍然存储了该字符串,我感到非常惊讶.这是代码:

#include <iostream>
using namespace std;

const char *func1()
{
    const char *c = "I am a string too";
    return c;
}

void func2(const char *c = "I'm a default string")
{
    cout << c << endl;
}

const int *func3()
{
    const int &b = 10;
    return &b;
}

int main()
{
    const char *c = "I'm a string";
    cout << c << endl;
    cout << func1() << endl;
    func2();
    func2("I'm not a default string");
    cout …
Run Code Online (Sandbox Code Playgroud)

c++ pointers constants string-literals object-lifetime

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

如何使用“tf.keras.callbacks.TensorBoard”记录激活?

的文档tf.keras.callbacks.TensorBoard说明该工具可以做到这一点:

此回调记录 TensorBoard 的事件,包括:

  • 指标汇总图
  • 训练图可视化
  • 激活直方图
  • 抽样分析

稍后还有:

histogram_freq:计算模型各层的激活和权重直方图的频率(以纪元为单位) 。如果设置为 0,则不会计算直方图。必须为直方图可视化指定验证数据(或分割)。

但是,当使用此参数时,我没有看到任何写入的激活摘要,只写入了权重本身。查看源代码,我也没有看到任何与激活相关的内容。

那么我错过了什么吗?是否可以在 TF2 中编写没有自定义代码的激活摘要?

python keras tensorflow tensorboard

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

强制numpy创建对象数组

我有一个数组:

x = np.array([[1, 2, 3], [4, 5, 6]])
Run Code Online (Sandbox Code Playgroud)

我想创建的另一个数组shape=(1, 1)dtype=np.object其唯一的元素为x。

我已经试过这段代码:

a = np.array([[x]], dtype=np.object)
Run Code Online (Sandbox Code Playgroud)

但是它会产生一系列形状(1, 1, 2, 3)

我当然可以:

a = np.zeros(shape=(1, 1), dtype=np.object)
a[0, 0] = x
Run Code Online (Sandbox Code Playgroud)

但我希望该解决方案能够轻松扩展到更大的a形状,例如:

[[x, x], [x, x]]
Run Code Online (Sandbox Code Playgroud)

无需for在所有索引上运行循环。

有什么建议可以实现吗?


UPD1

数组可能不同,如:

x = np.array([[1, 2, 3], [4, 5, 6]])
y = np.array([[7, 8, 9], [0, 1, 2]])
u = np.array([[3, 4, 5], [6, 7, 8]])
v = np.array([[9, 0, 1], [2, 3, …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

4
推荐指数
3
解决办法
665
查看次数

glEnableVertexAttribArray中"index"参数的含义以及(可能)OS X OpenGL实现中的错误

1)我是否正确理解使用顶点数组或VBO我需要所有属性来在着色器程序链接之前调用glBindAttribLocation或在着色器程序成功链接后调用glGetAttribLocation然后在glVertexAttribPointer中使用bound/gets索引和glEnableVertexAttribArray调用?

更具体地说:这三个函数 - glGetAttribLocation,glVertexAttribPointer和glEnableVertexAttribArray--它们都有一个名为"index"的输入参数.这三个人的"指数"是否相同?和glGetAttribLocation返回的那个一样吗?

如果是:2)我在OS X上遇到了问题,我在这里描述:https://stackoverflow.com/questions/28093919/using-default-attribute-location-doesnt-work-on-osx-osx -opengl-bug,但遗憾的是没有得到任何回复.

问题是,根据我绑定到属性的属性位置,我在屏幕上看到或看不到任何内容.我只在OS X 10.9.5的MacBook Pro上看到这种行为; 我已经尝试在Linux和Windows上运行相同的代码,它似乎可以独立于那些平台,我的属性绑定到哪些位置.

这是一个代码示例(应该在屏幕上绘制一个红色三角形),表明存在问题:

#include <iostream>
#include <GLFW/glfw3.h>

GLuint global_program_object;
GLint  global_position_location;
GLint  global_aspect_ratio_location;
GLuint global_buffer_names[1];

int LoadShader(GLenum type, const char *shader_source)
  {
  GLuint shader;
  GLint compiled;
  shader = glCreateShader(type);
  if (shader == 0)
    return 0;
  glShaderSource(shader, 1, &shader_source, NULL);
  glCompileShader(shader);
  glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
  if (!compiled)
    {
    GLint info_len = 0;
    glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &info_len);
    if (info_len > 1)
      {
      char* info_log = new char[info_len];
      glGetShaderInfoLog(shader, info_len, NULL, …
Run Code Online (Sandbox Code Playgroud)

c++ opengl macos vbo

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