我正在嘗試從 3D 噪聲中生成一批點云/網格。在我可以對其進行優化之前,我需要將其作為一堆初始隨機猜測。現有方法是針對生成航班等量身定制的。
我的管道目前包括
從噪聲 tf.random.normal/generator 生成隨機 3D 影像 -> 呼叫深度學習模型(Conv3DTranspose)(輸出(64,64,64) -> 驗證結果
這種方法的缺點是我沒有得到不同的隨機點云(它輸出相同的型別)
有沒有辦法可以有效地做到這一點。我目前正在使用 DL 模型,因為我沒有先前的分布,并且我需要一些東西來從一堆初始猜測開始。
謝謝
uj5u.com熱心網友回復:
貝葉斯 NN 用于解決問題,可以特定點和隨機生成。我可以使用 Numpy 洗掉,但我急于從環境中回答這個問題。
示例:隨機正弦運動。
import os
from os.path import exists
import tensorflow as tf
import tensorflow_io as tfio
import matplotlib.pyplot as plt
import numpy as np
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
None
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
physical_devices = tf.config.experimental.list_physical_devices('GPU')
assert len(physical_devices) > 0, "Not enough GPU hardware devices available"
config = tf.config.experimental.set_memory_growth(physical_devices[0], True)
print(physical_devices)
print(config)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
: Variables
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
def create_sine_data(n = 2048):
# pi = np.linspace(0, 180, n)
pi = 3.141592653589793
start = 0.0
stop = 1.0 * 2.0 * pi
num = n
x = tf.linspace( start, stop, num, name='linspace', axis=0 )
y1 = 3 * tf.math.sin( x )
escape_sine = tf.random.normal(
shape=( n, ),
mean=0.0,
stddev=0.15 * tf.math.abs( y1, name='abs' ),
dtype=tf.dtypes.float32,
seed=32,
name=None
)
y1 = tf.concat( (tf.zeros(60), y1 escape_sine, tf.zeros(60)), axis=0, name='concat' )
initial_degree = tf.experimental.numpy.arange( -3, 0, 3 / 60, dtype=tf.float32 )
midring_degree = tf.experimental.numpy.arange( 0, 3 * 2 * pi, ( 3 * 2 * pi) / n, dtype=tf.float32 )
skipped_degree = tf.experimental.numpy.arange( 3 * 2 * pi, 3 * 2 * pi 3, ( 3 * 2 * pi - 3 * 2 * pi 3 ) / 60, dtype=tf.float32 )
x = tf.concat(( initial_degree.numpy(), midring_degree.numpy(), skipped_degree.numpy()), axis=0, name='concat')
y2 = 0.1 * x 1
y = y1 y2
z = 15 * tf.random.normal(
shape=( n, ),
mean=0.0,
stddev=1,
dtype=tf.dtypes.float32,
seed=32,
name=None
)
return x, y, z
xdata, ydata, zdata = create_sine_data( )
ax = plt.axes(projection='3d')
# Data for a three-dimensional line
zline = np.linspace(0, 15, 1000)
xline = np.sin(zline)
yline = np.cos(zline)
ax.plot3D(xline, yline, zline, 'gray')
ax.scatter3D(xdata[:100], ydata[:100], zdata[:100], c=zdata[:100], cmap='Greens');
plt.show()

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/511231.html
上一篇:docker-compose無法解決:rpc錯誤:code=Unknowndesc
下一篇:名稱“火車”未定義
