我是C的新手,具有良好的java背景,我正在尝试理解指针和数组.
我知道下标operator[]
是数组定义的一部分,所以:
int numbers[] = {1,3,4,5};
Run Code Online (Sandbox Code Playgroud)
会创建一个整数数组,它将在内存中表示为16个字节,4个4个字节:
numbers[0] = 1, address 0061FF1C
numbers[1] = 3, address 0061FF20
numbers[2] = 4, address 0061FF24
numbers[3] = 5, address 0061FF28
Run Code Online (Sandbox Code Playgroud)
但是,当涉及指针时,我的知识开始崩溃,所以如果我要创建一个指向数组数字的指针,我将执行以下操作:
int *pNumbers = &numbers[0];
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
而且我猜它的大小是4字节?
然而,**
我读作"指针指针"对我来说没有意义,为什么有人想要指针指针,当然如果a-> b-> c然后a-> c就足够了?我知道我错过了一些东西,它必须与数组有关,argv
可以是类型char[ ]
或char **
下面看到的:
int main(int argc, char **argv){}
Run Code Online (Sandbox Code Playgroud)
所以:
**
)?我有这样的神经网络,我训练过看到它,它起作用,或者至少看起来有效,但问题在于训练.我正在尝试训练它作为OR门,但它似乎永远不会到达那里,输出往往看起来像这样:
prior to training:
[[0.50181624]
[0.50183743]
[0.50180414]
[0.50182533]]
post training:
[[0.69641759]
[0.754652 ]
[0.75447178]
[0.79431198]]
expected output:
[[0]
[1]
[1]
[1]]
Run Code Online (Sandbox Code Playgroud)
我有这个损失图:
奇怪的是它似乎是训练,但同时还没有达到预期的输出.我知道它永远不会真正实现0和1,但同时我希望它能够管理并获得更接近预期输出的东西.
我有一些问题试图找出如何支持错误,因为我想让这个网络有任意数量的隐藏层,所以我将局部渐变存储在一个层中,沿着权重,并从末尾发送错误背部.
我怀疑的主要功能是NeuralNetwork.train和两种前进方法.
import sys
import math
import numpy as np
import matplotlib.pyplot as plt
from itertools import product
class NeuralNetwork:
class __Layer:
def __init__(self,args):
self.__epsilon = 1e-6
self.localGrad = 0
self.__weights = np.random.randn(
args["previousLayerHeight"],
args["height"]
)*0.01
self.__biases = np.zeros(
(args["biasHeight"],1)
)
def __str__(self):
return str(self.__weights)
def forward(self,X):
a = np.dot(X, self.__weights) + self.__biases
self.localGrad = np.dot(X.T,self.__sigmoidPrime(a))
return …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个显示航班信息的程序,如下所示:
package d.airlineData.engine;
import java.time.Duration;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map.Entry;
import a.airlineData.exceptions.NoFlightsException;
import c.airlineData.exceptions.NoAirportException;
import d.airlineData.graph.Airport;
import d.airlineData.graph.Flight;
import d.airlineData.graph.FlightGraph;
public class FlightGrapher {
private FlightGraph fg;
public FlightGrapher() throws NoFlightsException {
throw new NoFlightsException();
}
public FlightGrapher(ArrayList<Flight> flights) throws NoFlightsException {
fg = new FlightGraph();
for(Flight flight: flights) {
fg.addAirport(flight.getAirportA());
fg.addAirport(flight.getAirportB());
try {
fg.addFlight(flight);
} catch (NoAirportException e) {
System.err.println(e.getMessage());
e.printStackTrace();
}
}
}
public void printAll() {
HashSet<Airport> airports = fg.getAirports(); …
Run Code Online (Sandbox Code Playgroud) 我已经获得了以下代码,并且我被要求确定类型.
exception Break;
fn f => fn a => fn b =>
(f(raise Break)
handle Break => if (f a) then a else raise Break)
handle Break => if not(f a) then a else b;
Run Code Online (Sandbox Code Playgroud)
我知道这个函数接受f,a和b并在所有实例中输出a所以它必须等于:
fn f => fn a => fn b => a
Run Code Online (Sandbox Code Playgroud)
其类型:
'a -> 'b -> 'c -> 'b
Run Code Online (Sandbox Code Playgroud)
因为'if(fa)'我们可以得出'a必须是一个接受类型'b的函数并输出一个布尔值,否则它将不起作用.
('b->bool) -> 'b -> 'c -> 'b
Run Code Online (Sandbox Code Playgroud)
这样做'a是开始:
('a->bool) -> 'a -> 'b -> 'a
Run Code Online (Sandbox Code Playgroud)
是我得到的最终答案.但是,当我在命令提示符下键入它时,我得到以下类型:
(bool->bool) -> bool -> bool -> bool
Run Code Online (Sandbox Code Playgroud)
我错过了什么?'a和'b(来自我的最终类型评估)在什么时候专注于bool?
我的任务是编写一个记录飞行数据的程序,所以我决定制作一个飞行物体.
在此对象内是出发时间和到达时间.我不确定哪个对象最适合用于此,我希望将时间存储在24小时(hh:mm)时间内,并能够以小时和分钟计算飞行持续时间(hh:mm) ,我看过文档,我遇到了3个不同的时间对象.
1 java.util.Date
long
s.2 java.sql.Date
long
s进行操作.3 java.sql.Time
Time(long)
构造函数.对我来说不是很有用,因为这意味着我需要在创造时间之前将每次转换为多头.TL;博士:
是否有任何库可以创建一个看起来像这样的时间
(pseudocode):
Object time = new Constructor(23,11)
Run Code Online (Sandbox Code Playgroud)
这不是"弃用"所以我不必先转换为long.或者,我必须自己制作Object
?
所以我一直在尝试将 PPM 文件存储在要操作的程序中,我成功地存储了直到颜色的所有内容,我在颜色方面取得了进展。
在询问有关堆栈溢出( For 循环无缘无故停止)的问题时,我确信我的方法有点粗制滥造,但是我不明白使用以下内容的原因:
COLOR (*colors)[width] = malloc( sizeof(COLOR[height][width]) );
Run Code Online (Sandbox Code Playgroud)
有人可以准确地分解这行代码在做什么并解释它是什么类型吗?所以我可以将它存储在一个结构中并成功返回它。
示例:以前我使用指针到指针,我分配了一个高度,并为每个指针分配了一个宽度。这意味着我可以为每个指针创建一个颜色,沿着宽度递增它直到最后,然后重置指针并递增高度和循环。获得完整图像后,我将其返回以将其存储在以下位置:
typedef struct {
char code[CODE_LENGTH];
COMMENT *commentPPM;
int width, height, max;
COLOR **colorValues;
} PPM;
Run Code Online (Sandbox Code Playgroud)
使用:
ppmFile->colorValues = getColors(fd, ppmFile->width, ppmFile->height);
Run Code Online (Sandbox Code Playgroud)
和
typedef struct{
int red, green, blue;
} COLOR;
COLOR * getNextColor(FILE *fd);
COLOR **getColors(FILE *fd, int width, int height){
printf("\nentered get colors");
COLOR **colors = malloc(sizeof(COLOR*)*height);
printf("\nallocated %d space height",height);
int i,j;
for(i = 0; i < height; i++, colors++){
*colors = malloc(sizeof(COLOR)*width); …
Run Code Online (Sandbox Code Playgroud)