shape学习

#shape学习和使用

注意: 自己设置的快捷键: alt+q 修改的是快捷键 活动窗口

学习参考的地址: https://www.jianshu.com/p/c3652a8c37ac

创建shape的可绘制资源文件 也就是Drawable目录下的xml

在你项目的drawable目录上右击新建Drawable resource file,这代表新建一个可绘制图形资源,你会得到如下代码文件。

展示如图所示:

这里我们使用的是shape而不是selector(以后会讲到),所以我们将selector换成shape。

注意我们看看有哪些可以选择的:

我们看到有: line(行,线) over(椭圆) 我们可以用到原型的时候使用 ring(环) rectangle(矩形)

关于这几种形状的特性有六种,作者的导图直接使用,我们这边使用文字记录一下在引用.

shape 可以定义的类型: line over ring rectangle 这四种共用的特性是:

  • size(大小)包括高度和宽度

  • corners(角落 我们来一点四个圆弧的大小) 包括radius(半径) bottomLeftRadius(底部左边的半径) bottomRightRdius topLetfRadius topLeftRadius

  • padding 包括 top bottom left right

  • stroke (给形状设置描边) 包括 color(颜色) dashwidth(dash是虚线的意思) dashgap(gap有间隔的意思) width

  • solid 背景色

  • 最多的一个 gradient(渐变的意思) startColor centerColor endColor useLevel(level有水平的意思) type gradientRadius(渐变的半径) angle(角度) centerX cnterY

##实现一个button

在Color的xml定义一个颜色 位置Values下面的Colors.xml中定义 模仿着写就行

保存一下子,常用

注意
button中文字左右添加图片 属性: android:drawableLeft="@drawable/vod_share_icon"

最后贴一个实现的shape的xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"

android:shape="rectangle" >

<size android:width="200dp" android:height="50dp"/>
<solid android:color="@color/full_screem_button_bg"/>
<corners android:radius="50dp"/>
<!--3F51B5-->

</shape>
### 什么是 Shape 值及其重要性 在机器学习领域,`shape` 是指张量(Tensor)、数组或其他数据结构的维度和大小。它定义了数据的空间布局以及其内部元素的数量分布。例如,在 NumPy 或 PyTorch 中,`shape` 表示矩阵或多维数组的具体尺寸。 Shape 对于构建有效的机器学习模型至关重要,因为它决定了输入数据如何被传递到模型中并影响计算效率。如果 `shape` 不匹配,则可能导致运行时错误或不准确的结果[^1]。 --- ### 如何在 Python 和框架中实现 Shape #### 使用 NumPy 实现 Shape NumPy 提供了一个简单的方法来获取数组的形状: ```python import numpy as np data = np.array([[1, 2], [3, 4]]) print(data.shape) # 输出 (2, 2),表示二维数组有两行两列 ``` 上述代码展示了如何利用 `.shape` 属性快速查看多维数组的维度信息。 #### 在 TensorFlow/PyTorch 中操作 Shape 以下是两个主流深度学习库中关于 `shape` 的基本用法: ##### PyTorch 示例 ```python import torch tensor = torch.randn(3, 4) print(tensor.shape) # 输出 torch.Size([3, 4]) ``` 这里创建了一个具有 `(3, 4)` 尺寸的随机张量,并打印它的形状[^2]。 ##### TensorFlow 示例 ```python import tensorflow as tf tensor_tf = tf.random.normal([3, 4]) print(tf.shape(tensor_tf)) # 输出 Tensor("Shape:0", shape=(2,), dtype=int32) ``` 此例子说明了 TensorFlow 可以通过函数 `tf.shape()` 来动态获得张量的形状。 --- ### Shape 应用于实际场景 #### 数据预处理阶段 在准备训练集之前,通常需要调整样本的数据形式以便适应特定算法的要求。比如卷积神经网络(CNNs)期望接收四维输入 `[batch_size, height, width, channels]`,因此可能需要用 reshape 方法改变原始图像文件的形式[^4]: ```python images = images.reshape(-1, 28, 28, 1) # 转换为适合 CNN 输入的格式 ``` 此处 `-1` 自动推断批量大小,而其他参数固定像素高度宽度及颜色通道数。 #### 模型设计期间 当搭建复杂架构如自编码器或者变分自动编码器时,中间层可能会经历多次变换从而导致最终输出不符合预期规格;此时就需要借助 Reshape Layer 明确指定希望得到的新 layout: ```python from keras.layers import Input, Dense, Reshape input_layer = Input(shape=(784,)) hidden_layer = Dense(units=128)(input_layer) reshaped_output = Reshape((16, 8))(hidden_layer) # 改变为新的空间排列方式 ``` 以上片段演示了 Keras API 下怎样插入 Reshape 组件重新规划隐藏单元的表现形态. #### 性能调优环节 有时为了提高 GPU 并行运算效能亦或是减少内存占用率,开发者会尝试修改 batch size 参数进而间接更改整体 tensor structure : ```python model.fit(x_train, y_train, epochs=5, batch_size=64) # 更改批次规模至更小数值有助于缓解显存压力但延长迭代周期 ``` 这种做法直接影响到了后续梯度下降过程中 mini-batch gradient descent 执行模式下的更新频率与稳定性. --- ### 结论 综上所述,掌握好 shape 的概念不仅能够帮助我们顺利完成从基础实验到高级部署的各项任务,而且还能有效提升程序性能表现。无论是简单的线性回归还是复杂的强化学习环境模拟,合理运用 shape 都显得尤为重要[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值