UG NX 12 基准轴

选择菜单命令“菜单”-“插入”-"基准/点”-“基准轴”,或从“主页”选项卡基准/
点下拉菜单中选择“基准轴”命令,打开如下图所示的“基准轴”对话框,可根据需要从“类型”下拉列表框选择适当的选项创建基准轴。“类型”下拉列表框常用选项的说明如下:

在这里插入图片描述
1.自动判断

功能:根据系统的自动推断创建基准轴。

操作说明:选择该选项后,选择用于创建基准轴的对象,系统根据所选的对象自动判断可以创建的基准轴。例如,如图3-45所示,选择该选项后选择圆柱面,可创建通过圆柱轴线的基准轴。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2,交点

功能:根据两个平面或基准平面的交线创建基准轴。

操作说明:选择该选项后,依次选择两个平面或基准平面,最后单击“确定”按钮,在两个平面或基准平面相交处创建基准轴,如图3-46所示。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
3.曲线/面轴

功能:沿线性曲线或线性边、圆柱面、圆锥面或圆环的轴创建基准轴。

操作说明:选择该选项后,如果选择线性的曲线或实体的线性边缘,则以所选的曲线或边创建基准轴;如果选择曲面,尤其是回转面,则以回转面的轴线创建基准轴,如图3-47所示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4,曲线上矢量

功能:创建与曲线或边上的某点相切、垂直或双向垂直,或者与另一对象垂直或平行的基准轴。

操作说明:选择该选项后,选择曲线上的一个点,NX自动将曲线在该点的切线方向作为基准轴的方向,并显示通过该点的基准轴的预览,如图3-48所示。也可选择某个对象(如直线)定义轴线方向,并可通过对话框的“曲线上的位置”选项组调整基准轴的原点。
在这里插入图片描述
5,XC轴(YC轴、ZC轴)

功能:沿WCS的坐标轴创建基准轴。

操作说明:选择该选项后,沿相应的坐标轴创建固定基准轴。

6·点和方向

功能:从一点沿指定方向创建基准轴。

操作说明:选择该选项后,可利用图形窗口上方的上边框条中点的捕捉方式选择基准轴的通过点;也可单击“通过点”选项组“指定点”右侧的“点对话框”图标,利用打开的“点”对话框指定通过点,或者单击“指定点”最右侧的箭头,选择某个选项来指定通过点。
指定通过点后,需要指定基准轴的方向。可单击“方向”选项组“指定矢量”右侧的“矢量对话框”图标,利用打开的“矢量”对话框指定矢量,也可单击“指定矢量”最右侧的箭头选择矢量,并在“方位”下拉列表框中设置基准轴方向与所指定矢量的平行或垂直关系,最后单击“确定”按钮创建基准轴。
例如,如图3-49所示,选择该选项后,选择实体底面边缘上的一点,然后选择如图所示的方向为基准轴方向,最后单击“确定”按钮,所创建的基准轴通过所选点,并平行于指定的基准轴方向。
在这里插入图片描述
7·两点

功能:根据指定的两个点创建基准轴。

操作说明:选择该选项后,依次选择两个点定义基准轴,基准轴的方向默认为由所选的第一个点指向第二个点,如图3-50所示。单击“轴方位”选项组的“反向”图标 可翻转基准轴的方向。
在这里插入图片描述
在这里插入图片描述

### 全连接神经网络中的反向传播公式推导全连接神经网络中,每一层的输入与输出之间存在线性关系,并通过激活函数引入非线性。对于一层来说,其正向传播可以表示为: \[ z^{(l)} = W^{(l)}a^{(l-1)} + b^{(l)} \] \[ a^{(l)} = g(z^{(l)}) \] 其中 \(W^{(l)}\) 是权重矩阵,\(b^{(l)}\) 是偏置项,\(g(\cdot)\) 表示激活函数。 为了计算梯度以便更新参数,在反向传播过程中需要计算损失函数关于各层权重偏置的偏导数。设当正在处理第 \( l \) 层,则有如下表达式用于描述这些偏导数[^1]: \[ \delta^{(l)} = (\Theta^{(l)})^T\delta^{(l+1)} .* g'(z^{(l)}) \] \[ \frac{\partial}{\partial W_{ij}^{(l)}} J(W,b;x,y)=a_j^{(l)}\delta_i^{(l+1)} \] \[ \frac{\partial}{\partial b_i^{(l)}}J(W,b;x,y)=\delta_i^{(l+1)} \] 这里 \(\delta^{(l)}\) 称作误差项(error term),代表该层相对于最终输出产生的错误;\(.*\) 表明逐元素乘法操作;\(g'\) 则是指激活函数的一阶导数。 ### 卷积神经网络(CNN)中的Backpropagation Derivation 卷积神经网络结构更加复杂一些,除了普通的全连接层外还包括卷积层、池化层等特殊组件。下面主要讨论卷积层内的反向传播过程。 假设有一个二维图像作为输入经过一次标准卷积运算得到特征图(output feature map), 正向传播可写作: \[ O(i,j,k) = f(I * K(:,:,k)) + B(k) \] 这里的 \(O, I, K,\text{ }B\) 分别对应于输出特征映射(Output Feature Map)、输入数据(Input Data)、滤波器(Filter/Kernels)以及偏差(Bias Term); 符号"\(*\)"表示卷积操作; 函数"f()"通常是一个ReLU这样的非线性变换. 当执行反向传播时,目标是要找到三个部分对应的梯度:即对输入I、核K还有bias B 的梯度。具体而言, 针对输入的数据 \(I\) 来说, \[ dI = dO * rot180(K) \] 而对于滤波器 \(K\) 而言, \[ dK = I * dO \] 最后是对于 bias \(B\), \[ dB=\sum_dO \] 上述各式中,“rot180()”指的是旋转180度的操作,这一步骤是为了匹配卷积操作的特点使得能够正确地传递梯度信息回一层节点[^2]。 另外值得注意的是,在实际应用当中可能会涉及到填充(padding)平铺(stride)等因素的影响,所以在实现具体的算法时还需要考虑这些问题带来的变化[^4]。 ```python import numpy as np def conv_backward(dZ, cache): """ Implement the backward propagation for a convolution function Arguments: dZ -- gradient of the cost with respect to output of the conv layer (Z), numpy array of shape (m, n_H, n_W, n_C) cache -- cache of values needed for the conv_backward(), output of conv_forward() Returns: dA_prev -- gradient of cost with respect to input of the conv layer (A_prev), numpy array of shape (m, n_H_prev, n_W_prev, n_C_prev) dW -- gradient of cost with respect to weights W, numpy array of shape (f, f, n_C_prev, n_C) db -- gradient of cost with respect to biases b, numpy array of shape (1, 1, 1, n_C) """ # Retrieve information from "cache" (A_prev, W, b, hparameters) = cache # Retrieve dimensions from A_prev's shape and W's shape (m, n_H_prev, n_W_prev, n_C_prev) = A_prev.shape (f, f, n_C_prev, n_C) = W.shape # Initialize gradients dA_prev = np.zeros((m, n_H_prev, n_W_prev, n_C_prev)) dW = np.zeros((f, f, n_C_prev, n_C)) db = np.sum(dZ, axis=(0, 1, 2)) db = db.reshape((1, 1, 1, n_C)) # Compute dA_prev, dW using formulas above. for i in range(m): # loop over the training examples a_slice_prev = A_prev[i,:,:,:] for h in range(n_H_prev): # loop through vertical axis of previous activation matrix for w in range(n_W_prev): # loop through horizontal axis of previous activation matrix for c in range(n_C): # loop over channels (=number of filters) of current layer vert_start = h vert_end = vert_start + f horiz_start = w horiz_end = horiz_start + f a_slice = a_slice_prev[vert_start:vert_end, horiz_start:horiz_end, :] da_prev_pad = sum(sum(np.dot(dZ[i,h,w,c], W[:,:, :,c]))) dW[:,:,:,c] += a_slice * dZ[i,h,w,c] dA_prev[i, vert_start:vert_end, horiz_start:horiz_end, :] += W[:, :, :, c]*dZ[i,h,w,c] return dA_prev, dW, db ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心诚的文字

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值