我想模拟二维物体周围的流动.因此我在C中编写了一个程序,它使用Navier-Stokes方程来描述流体的运动.现在我想到的不仅仅是在模拟域中放置一个矩形.要绘制这样一个矩形,我只需要执行以下操作:
for(int i=start_x; i<end_x; i++)
for(int j=start_y; j<end_y; j++)
M[i][j] = 1; // barrier cell = 1
Run Code Online (Sandbox Code Playgroud)
这样做我得到一个漂亮的矩形.没有惊喜.但是,如果我想模拟圆形,十字形,三角形,翼形轮廓或任何其他任意多边形的流动,那会是什么方法呢?有没有一种简单的方法可以在M
大小矩阵中绘制这样的2D对象m x n
?
我刚刚找到了一种简单的方法来绘制我想要的几乎任何形状.@Nominal Animal的答案激励我找到这个解决方案.我只是使用一个.png
文件并.pgm
使用该命令将其转换为文件convert picture.png picture.pgm
(使用Linux).在我的代码中,我只需要更多行:
FILE *pgmFile;
pgmFile = fopen("picture.pgm", "r");
for(int i=0; i<1024; i++){
for(int j=0; j<1024; j++){
int d = fgetc(pgmFile);
if(d < 255){
M[i][j] = 1; // barrier cell = 1
}
}
}
fclose(pgmFile);
Run Code Online (Sandbox Code Playgroud)
这里我使用1024 x 1024像素的图片.如果像素的值小于255(不是白色),则将像素设置M[i][j]
为1.这是我使用Stack Overflow标识生成的结果(通量来自左侧):
速度图,Re = 20000(雷诺数)
今天我开始使用 Docker。所以请耐心等待。我什至不确定标题是否有意义。我刚刚使用 Docker 安装了 Tensorflow 并想运行一个脚本。但是,我收到以下错误消息,指出未安装 Matplotlib。
Traceback (most recent call last):
File "tf_mlp_v3.py", line 3, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'
Run Code Online (Sandbox Code Playgroud)
我使用以下命令安装 Tensorflow
docker pull tensorflow/tensorflow:latest-gpu-jupyter
Run Code Online (Sandbox Code Playgroud)
我现在如何将其他 python 库(例如 Matplotlib)添加到该图像中?
我希望能够重置整个 Keras 模型的权重,这样我就不必再次编译它。编译模型目前是我的代码的主要瓶颈。这是我的意思的一个例子:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(16, activation='relu'),
tf.keras.layers.Dense(10)
])
model.compile(optimizer=tf.keras.optimizers.SGD(learning_rate=0.001),
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
data = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = data.load_data()
model.fit(x=x_train, y=y_train, epochs=10)
# Reset all weights of model here
# model.reset_all_weights() <----- something like that
model.fit(x=x_train, y=y_train, epochs=10)
Run Code Online (Sandbox Code Playgroud) 下面的例子展示了如何计算两个集合的交集。STL 是否提供了不仅可以为 2 组而且可以为N
组执行此操作的工具?
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> v1 = { 1,2,9,3,4,5 };
std::vector<int> v2 = { 9,4,2,7,4,1 };
std::vector<int> v(v1.size() + v2.size());
std::vector<int>::iterator it;
std::sort(v1.begin(), v1.end());
std::sort(v2.begin(), v2.end());
it = std::set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), v.begin());
v.resize(it - v.begin());
std::cout << "Both sets have " << (v.size()) << " elements in common:\n";
for (it = v.begin(); it != v.end(); ++it)
{
std::cout << *it << ' ';
}
std::cout << '\n';
return …
Run Code Online (Sandbox Code Playgroud) 我想在 Python 中创建一个棋盘分布。
目前我使用以下脚本来创建一个2 x 2
大小的棋盘:
import numpy as np
import matplotlib.pyplot as plt
n_points = 1000
n_classes = 2
x = np.random.uniform(-1,1, size=(n_points, n_classes))
mask = np.logical_or(np.logical_and(x[:,0] > 0.0, x[:,1] > 0.0), \
np.logical_and(x[:,0] < 0.0, x[:,1] < 0.0))
y = np.eye(n_classes)[1*mask]
plt.scatter(x[:,0], x[:,1], c=y[:,0], cmap="bwr", alpha=0.5)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这创造了
我想知道是否存在一种简单的方法来概括上述代码以创建大小的棋盘分布n x n
?
编辑
使用@jpf 很好的解决方案
import numpy as np
import matplotlib.pyplot as plt
from numpy import sin
n_points = 10000
n_classes = 2
n = …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Tensorflow 2.0 并希望将以下 Keras 模型存储为冻结图。
import tensorflow as tf
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(64, input_shape=[100]))
model.add(tf.keras.layers.Dense(32, activation='relu'))
model.add(tf.keras.layers.Dense(16, activation='relu'))
model.add(tf.keras.layers.Dense(2, activation='softmax'))
model.summary()
model.save('./models/')
Run Code Online (Sandbox Code Playgroud)
我在 Tensorflow 2.0 中找不到任何好的例子来做到这一点。我在 Tensorflow Github 存储库中找到了freeze_graph.py文件,但发现我很难理解它。
我使用以下方法加载上述文件:
from tensorflow.python.tools.freeze_graph import freeze_graph
Run Code Online (Sandbox Code Playgroud)
但是我到底需要为freeze_graph
函数本身提供什么?在这里,我用问号标记了我不确定的论点。
freeze_graph(input_graph=?,
input_saver='',
input_binary=False,
input_checkpoint=?,
output_node_names=?,
restore_op_name='',
filename_tensor_name='',
output_graph='./frozen_graph.pb',
clear_devices=True,
initializer_nodes='')
Run Code Online (Sandbox Code Playgroud)
有人可以提供一个简单的示例来说明如何使用该freeeze_graph
函数将上面的模型存储为冻结图吗?
我试图使用vmap
基于 JAX 文档的最小工作示例来了解 JAX 的自动矢量化功能。
我不明白如何in_axes
正确使用。在下面的示例中,我可以设置in_axes=(None, 0)
或in_axes=(None, 1)
导致相同的结果。为什么会这样?
为什么我必须使用in_axes=(None, 0)
而不是类似的东西in_axes=(0, )
?
import jax.numpy as jnp
from jax import vmap
def predict(params, input_vec):
assert input_vec.ndim == 1
activations = input_vec
for W, b in params:
outputs = jnp.dot(W, activations) + b
activations = jnp.tanh(outputs)
return outputs
if __name__ == "__main__":
# Parameters
dims = [2, 3, 5]
input_dims = dims[0]
batch_size = 2
# Weights
params = list()
for …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种简单的方法来获得二进制矩阵的所有组合.我已经尝试过该功能,perms()
但没有得到正确的结果.
我有一个填充1和-1的矩阵N x N. 当N = 2时,将存在2 ^ 4个可能的1和-1组合
(1 1) (1 1) (-1 -1)
M(1) = (1 1) , M(2) = (1 -1) , M(3) = ( 1 1) and so on...
Run Code Online (Sandbox Code Playgroud)
当我使用perms()时,我没有得到第一个矩阵.
我该如何解决这个问题?
我有代表星团的 x 和 y 数据点。我想使用 Gnuplot 及其带有重叠点的散点函数来可视化密度。
我使用了以下命令:
set style fill transparent solid 0.04 noborder
set style circle radius 0.01
plot "data.dat" u 1:2 with circles lc rgb "red"
Run Code Online (Sandbox Code Playgroud)
结果:
但是我想要这样的东西
这在 Gnuplot 中可能吗?有任何想法吗?
我正在寻找在 Tensorflow 中使用 LSTM 单元的 RNN 的低级实现。我已经实现了几个使用低级 API 的前馈网络。这对我理解人工神经网络的内部运作有很大帮助。我可以对 RNN 做同样的事情,还是建议使用 LSTM 单元的 Tensorflow 实现(tf.nn.rnn_cell.BasicLSTMCell
)?我没有在 Tensorflow 中找到任何 RNN 的低级实现。我在哪里可以找到这么低级的实现?Tensorflow 是为此而设计的吗?我可以从哪里开始?我希望我的一些问题可以在这里得到解答
python ×5
tensorflow ×3
keras ×2
matrix ×2
algorithm ×1
binary ×1
c ×1
c++ ×1
c++11 ×1
docker ×1
draw ×1
drawing ×1
gnuplot ×1
jax ×1
lstm ×1
matlab ×1
matplotlib ×1
permutation ×1
scatter-plot ×1