使用Docker运行Tensorflow环境
前言
在Windows上使用Tensorflow和Keras的集成深度学习框架,环境配置总是出错
拉取镜像
理解reshape方法
Transformer
seq2seq
附录
word2vec
介绍
CBOW 和 Skip-Gram 在训练时的输入数据格式不同:
1. CBOW(Continuous Bag of Words)
- 输入:上下文词(多个)
- 输出:中心词(目标词)
CBOW 通过周围的 上下文词(context words) 预测当前的 中心词(target word),训练样本是从文本窗口中抽取的。例如,假设我们有一个文本:
隐马尔可夫模型
介绍
状态序列 (上面那行x) 隐藏的马尔科夫链随机生成的状态序列,称为状态序列
观测序列 (下面那行y) 每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列
马尔科夫模型是关于时序的概率模型
隐状态可以转换但是观测状态之间不能互相转换,所以要由隐状态->观测状态和观测状态1->观测状态2
假设Q是所有可能的状态序列,V是所有可能的观测序列
概率论重点公式
全概率公式
贝叶斯公式
乘法公式
条件概率
联合概率
链式法则
在条件概率的框架下,如果 在给定参数 下是独立的,那么他们的联合条件概率可以分解为
如果不独立,联合条件概率可以分解为
使用Docker配置PHP和XDebug开发调试环境
前言
听说PHP8的性能很高,但是PHP的调试配置环境很繁琐,不如使用Docker配置一个开发调试环境,既可以使用PHP8,又可以使用XDebug进行调试,还不会影响本地的其他编程语言环境。
安装Docker
创建Dockerfile
# 使用官方的 PHP 镜像作为基础镜像
FROM php:8.2-cli
# 更换为阿里云的 Debian 镜像源
RUN echo "deb http://mirrors.aliyun.com/debian/ bookworm main non-free contrib" > /etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/debian/ bookworm main non-free contrib" >> /etc/apt/sources.list
# 安装必要的扩展
RUN apt-get update && apt-get install -y --fix-missing \
git \
zip \
unzip \
libzip-dev \
libicu-dev \
&& docker-php-ext-install zip intl pdo_mysql
# 安装 Xdebug
RUN pecl install xdebug && docker-php-ext-enable xdebug
# 配置 Xdebug
COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# 设置工作目录
WORKDIR /var/www/html
# 安装 Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# 暴露端口 9004 (Xdebug)
EXPOSE 9004
# 启动 PHP 内置服务器
CMD ["php", "-S", "0.0.0.0:80", "-t", "public"]
Docker常见问题
Docker容器之间不能互联
首先,检查容器是否在同一个网络中。如果是希望通过宿主机连接两个容器,在容器中,宿主机的 IP 地址可以通过 host.docker.internal(Docker Desktop)或 172.17.0.1(默认 Docker 网桥)访问。
例如 在本地运行的Wordpress容器连接本地运行的MySQL容器,可以使用以下命令:
在填写主机地址时不要使用 localhost
,而是使用host.docker.internal
或者172.17.0.1
32位汇编
调用约定 cdecl, stdcall, fastcall
cdecl
、stdcall
和 fastcall
是三种常见的函数调用约定,主要在参数传递、栈清理和寄存器使用方面有所不同。以下是它们的详细区别:
1. cdecl (C Declaration)
- 参数传递:参数从右到左压栈。
- 栈清理:由调用者清理栈。
- 寄存器使用:通常不使用寄存器传递参数。
- 返回值:通过
eax
返回。 - 可变参数:支持可变参数函数(如
printf
)。